CIFAR-10データセットの紹介

先日、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()

結果がこちら。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です