先日、Fashion-MNISTを触ってみたばかりなのですが、最近はカラー画像のセットであるCIFAR-10も試しています。
このデータセットには、次の10種類のカラー画像が含まれています。
飛行機/車/鳥/猫/鹿/犬/蛙/馬/船/トラック
大元の配布元はこちらのようです。
The CIFAR-10 dataset
ただ、これも kerasのデータセットに含まれていて、とても手軽に扱うことができます。
ドキュメント: CIFAR10 画像分類
(画像の種類数がさらに多い、CIFAR-100というのもあります)
今回もとりあえず読み込んで表示してみます。
from tensorflow.keras.datasets import cifar10
import matplotlib.pyplot as plt
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# Fashion-MNIST とは 配列の型が違うので注意
print("x_train.shape: ", x_train.shape)
print("y_train.shape: ", y_train.shape)
print("x_test.shape: ", x_test.shape)
print("y_test.shape: ", y_test.shape)
"""
x_train.shape: (50000, 32, 32, 3)
y_train.shape: (50000, 1)
x_test.shape: (10000, 32, 32, 3)
y_test.shape: (10000, 1)
"""
# 0〜9が なんの画像かの対応はdatasetに含まれないので別途作る
target_name = {
0: "airplane",
1: "automobile",
2: "bird",
3: "cat",
4: "deer",
5: "dog",
6: "frog",
7: "horse",
8: "ship",
9: "truck",
}
fig = plt.figure(figsize=(15, 18), facecolor="w")
for i in range(100):
ax = fig.add_subplot(10, 10, i+1)
ax.set_xticklabels([])
ax.set_yticklabels([])
ax.imshow(x_train[y_train.ravel() == i // 10][i % 10], cmap="gray_r", vmin=0, vmax=255)
if i % 10 == 0:
# アイテムの最初の画像にタイトルつける
ax.set_title(target_name[i//10])
plt.show()
結果がこちら。