CIFAR-10データセットの説明



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク

公開日:2021/6/15         

前提知識
ニューラルネットワークとは
pythonとは


■CIFAR(Canadian Institute For Advanced Research)-10とは
CIFAR-10とはAlex Krizhevsky氏らが収集した動物や乗り物の画像を集めたデータセットのことで、ニューラルネットワークの画像認識用データなどに用いられます。 トレーニングデータとして50,000個、テストデータとして10,000個の画像データがあります。データはpytorchやsklearn、kerasなどからも入手可能ですが、ファイルサイズが大きいからか、ダウンロードエラーになることがあるので、 以下サイトから入手するのが確実です。

https://www.cs.toronto.edu/~kriz/cifar.html

■データセットの説明
1つの画像データは以下の様に、32 x 32のサイズにRGBの色の情報が入った状態となっております。またそれぞれの画像にはラベルが与えられており、例えば以下自動車のラベルは1です。



■pythonでの実装例
ダウンロードしたデータ(~tar.gz)をLhaplusなどの解凍ツールで解凍し、プログラムファイルと同一のフォルダに格納します。ファイルは以下となります。

data_batch_1, data_batch_2, data_batch_3, data_batch_4, data_batch_5
  ⇒ トレーニングデータ。一つのファイルに1万の画像、ラベル、ファイル名が格納されている。

test_batch
  ⇒ テストデータ。一つのファイルに1万の画像、ラベル、ファイル名が格納されている。

これらのファイルはdict型となっており、それぞれの要素は以下となっております。

 [b'filenames']:ファイルネーム
 [b'data']:画像データ
 [b'labels']:ラベル

画像表示のプログラム例は以下。

import numpy as np
import matplotlib.pyplot as plt
import pickle

with open("data_batch_2", 'rb') as file:    # open:ファイルを開く
    a = pickle.load(file, encoding='bytes')     # pickle:データをロードする。aはdict型
    b = a[b'data'][0]                           # bは3072個のデータ(3*32*32)

c = b.reshape(3, 32, 32).transpose(1,2,0)     # [32,32,3]に変換

plt.imshow(c)
plt.show()










サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク