Fashin MNISTはMNISTっていう数字のデータセットを靴とか衣服とかにしたデータセットです。
なので、MNISTと同様に0〜9までのクラスがあるデータセットです。
基本的には参考文献のtensorflowのチュートリアルのソースコードを参考にしています。
githubにもあげてあります。
データセットを見てみる
では、tensorflowから簡単にデータを取得できるので取得してみます。
from tensorflow.keras import datasets
import matplotlib.pyplot as plt
(x_train, y_train), (x_test, y_test) = datasets.fashion_mnist.load_data()
取得したデータ形式を見てみます。
print("x_train shape:",x_train.shape)
print("y_train shape:",y_train.shape)
print("---------------------------------")
print("x_test shape:",x_test.shape)
print("y_test shape:",y_test.shape)
# 以下出力
# x_train shape: (60000, 28, 28)
# y_train shape: (60000,)
# ---------------------------------
# x_test shape: (10000, 28, 28)
# y_test shape: (10000,)
訓練データは60000枚の28×28の画像に対して、各々ラベル(0〜9)が与えられているデータになっています。
テストデータも同様です。
各クラスは衣服や靴を表しています。確認してみます。
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
labels = np.arange(len(class_names))
for label,class_name in zip(labels,class_names):
print(label,":",class_name)
以下が出力になります。0はTシャツ、4はコートを表していることわかります。
0 : T-shirt/top
1 : Trouser
2 : Pullover
3 : Dress
4 : Coat
5 : Sandal
6 : Shirt
7 : Sneaker
8 : Bag
9 : Ankle boot
画像を見てみます。
plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(x_train[i], cmap=plt.cm.binary)
plt.xlabel(class_names[y_train[i]])
plt.show()