Up データの前処理 作成: 2021-04-17
更新: 2021-04-19


  • データセットには衣料品のクラス名が含まれていない。
    後で画像を出力するときのために、クラス名を保存しておく:
      >>> 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)) <Figure size 1000x1000 with 0 Axes> >>> 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]]) ... <AxesSubplot:> ([], []) ([], []) <matplotlib.image.AxesImage object at 0x6031fe30> Text(0.5, 0, 'Ankle boot')  :  : <AxesSubplot:> ([], []) ([], []) <matplotlib.image.AxesImage object at 0x67951fb0> 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