【機械学習①】Google Colaboratoryで画像データセットCIFAR-10を表示してみた

スポンサーリンク
使ってみた
スポンサーリンク
スポンサーリンク

前提知識

CIFAR-10とは

 データセットCIFAR-10(シーファーテン)は、機械学習のうち画像処理に関わるタスクのトレーニングに使用される画像のコレクションです。1カテゴリあたり6,000枚、全部で10カテゴリ合計60,000枚の画像で構成されています。一つ一つの画像データは、サイズが32×32ピクセルで、1つのピクセルはそれぞれRGB3チャンネルの、符号なし8ビット整数値(0~255)データから成ります。

The CIFAR-10 dataset より引用

CIFAR-10本家URL:https://www.cs.toronto.edu/~kriz/cifar.html

Kerasとは

 Kerasは、プログラミング言語Pythonで書かれた、Googleの深層学習ライブラリTensorFlow上で実行可能なニューラルネットワークのためのライブラリです。

Keras URL : https://keras.io/ja/

Numpyとは

 Numpy(ナンパイ)は、Pythonで線形代数(ベクトル、行列、テンソル)を扱うためのライブラリです。今回のコードではCIFAR-10のデータ自体がNumpyの配列になっています。

Numpy : https://numpy.org/

Matplotlibとは

 Matplotlib(マットプロットリブ)は、Pythonの描画を司るライブラリです。コードではCIFAR-10の画像を表示するために使っています。

Matplotlib : https://matplotlib.org/stable/index.html

Google Colaboratoryで表示

概要

 今回は、コレクションCIFAR-10の中にある画像を自由に表示できるコードを記載します。コードの中のインデックス変数「index」の値を変えると、CIFAR-10の様々な画像を日本語ラベル付きで見ることができるようにしました。今後はこれらの画像データに対して、機械学習の仕組みを使って、様々な処理を加えていこうと思います。

 以下のコードはGoogle Colaboratory上での実行を想定しています。

ライブラリのインポートとMatplotlibの日本語化

 まずは、Keras、Numpy、Matplotlibのライブラリをそれぞれインポートします。それから、Matplotlibを日本語に対応させます。

# Kerasをインポート
import keras
# Numpyをインポート
import numpy as np
# Matplotlibをインポート
import matplotlib.pyplot as plt

# Matplotlibの日本語化
!pip install japanize-matplotlib
import japanize_matplotlib

以下は、Google Colaboratoryで実行した様子です。

CIFAR-10のロードと日本語のラベル付け

 次はCIFAR-10をロードして、その画像に日本語でラベル付けをします。

# CIFAR-10のロード
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()

# 日本語でラベル付け
cifar10_labels = np.array(['飛行機','クルマ','トリ','ネコ','シカ','イヌ','カエル','ウマ','船','トラック'])

以下は、Google Colaboratoryで実行した様子です。

画像の表示数と最初の画像番号を指定

以下のコードで画像番号を「index = 0」 として実行すると、CIFAR-10の0番目から画像が表示されます。(Pythonでは、番号は0から始まります!)

# 画像の表示数: rows(行数), cols(列数)
rows = 2
cols = 10

# 画像番号[0〜(49999-n)の値を入れてください]
index = 0

# 画像を表示
plt.figure(figsize=(20, 5))
for i in range(rows*cols):
	ax = plt.subplot(rows, cols, i + 1)
	plt.imshow(x_train[index+i])
	plt.title(cifar10_labels[y_train[index+i][0]])
	ax.get_xaxis().set_visible(False)
	ax.get_yaxis().set_visible(False)
plt.show()

以下は、Google Colaboratoryで実行した様子です。

CIFAR-10の最初の画像はカエルなんですね。

また例えば「index = 100」にすると、以下のように表示されます。

では、色々な番号を入れてみて、CIFAR-10の様々な画像を見てみて下さい!

コメント

プロフィール

bond.fatherは、主にAI、Python、バイオインフォマティクスに関わっています。
bond.motherは、当ブログの管理者です。インフラから開発まで広く勉強中です。
当記事はbond.fatherが作成し、bond.motherが編集をしています。

bond.father & motherをフォローする
タイトルとURLをコピーしました