- データセットには衣料品のクラス名が含まれていない。
後で画像を出力するときのために、クラス名を保存しておく:
>>> class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
... 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
>>>
- images (28×28 ピクセル) は,ピクセルの値が 0から255の間の整数。
ニューラルネットワークにデータを投入する前に、これらの値を0から1までの範囲にスケールする──画素の値を255で割る:
>>> train_images = train_images / 255.0
>>> test_images = test_images / 255.0
- 生成されたデータが正しいフォーマットになっていることを確認
──最初の25枚の画像を、クラス名付きで表示:
>>> 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(train_images[i], cmap=plt.cm.binary)
... plt.xlabel(class_names[train_labels[i]])
...
([], [])
([], [])
Text(0.5, 0, 'Ankle boot')
:
:
([], [])
([], [])
Text(0.5, 0, 'Coat')
>>> plt.show()

この画像表示をプログラムでするならば:
(venv) $ vi fashion_mnist_plt.py
#!/usr/bin/env python
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', \
'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
train_images = train_images / 255.0
test_images = test_images / 255.0
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(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels[i]])
plt.show()
|
(venv) $ chmod +x fashion_mnist_plt.py
(venv) $ ./fashion_mnist_plt.py
|