【Fashion-MNIST】ファッションアイテムのデータセットを使ってみた【TensorFlow】
公開日:
:
最終更新日:2022/03/15
機械学習 Fashion-MNIST, PyTorch, TensorFlow, データセット, ファッションアイテム
今回は、機械学習用に公開されているデータセットの1つである「Fashion-MNIST」について紹介します。
手書き数字データセットに「MNIST」という有名なものがありますが、「Fashion-MNIST」はそれのファッションアイテム版です。
以下の10種類のアイテムが入っています。
※数字はラベルを表しています。
- 0:Tシャツ
- 1:ズボン
- 2:プルオーバー
- 3:ドレス
- 4:コート
- 5:サンダル
- 6:シャツ
- 7:スニーカー
- 8:バッグ
- 9:アンクルブーツ
今回は、TensorFlow を使って読み込みをしていますが、PyTorch でも同様に読み込みができます。
Contents
データセットのロード
以下のようにデータセットのロードを行います。
1 2 |
from tensorflow.keras.datasets import fashion_mnist (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data() |
初回のみ、データセットのダウンロードが行われます。
1 2 3 4 5 6 7 8 |
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz 32768/29515 [=================================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz 26427392/26421880 [==============================] - 8s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz 8192/5148 [===============================================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz 4423680/4422102 [==============================] - 1s 0us/step |
読み込んだデータの形状
以下のようにデータ形状を調べます。
1 2 3 4 |
print(x_train.shape) # 出力:(60000, 28, 28) print(y_train.shape) # 出力:(60000,) print(x_test.shape) # 出力:(10000, 28, 28) print(y_test.shape) # 出力:(10000,) |
以下のように出力されます。
1 2 3 4 |
(60000, 28, 28) (60000,) (10000, 28, 28) (10000,) |
ファッションアイテム画像は、28×28ピクセルのモノクロ画像です。
y_train, y_test には、正解ラベル(0~9の値)が入っています。
x_train, y_train は、3階テンソル(データセットの数, 28, 28)となっています。
ファッションアイテム画像一覧表示
ファッションアイテム画像を100枚表示させます。
10列×10行で一覧表示させます。軸のメモリは非表示にします。
また、X軸のラベルに、ファッションアイテム名が表示されるようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import matplotlib.pyplot as plt %matplotlib inline # ラベルに割り当てられたアイテム名を登録 class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot'] plt.figure(figsize=(13,13)) # 訓練データから100枚抽出してプロットする for i in range(100): # 10×10で出力 plt.subplot(10,10,i+1) # タテ方向の間隔を空ける plt.subplots_adjust(hspace=0.3) # 軸目盛を非表示にする plt.xticks([]) plt.yticks([]) plt.grid(False) # カラーマップにグレースケールを設定してプロット plt.imshow(x_train[i], cmap=plt.cm.binary) # x軸ラベルにアイテム名を出力 plt.xlabel(class_names[y_train[i]]) plt.show() |
参考文献
関連記事
-
-
【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】
今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)を構築する方法について紹介しま
-
-
【Weka】フリーの機械学習ソフトをインストールする方法。
Weka は、GUIで使えるフリーの機械学習ソフトです。 https://ja.wikiped
-
-
【PyTorch】ニューラルネットワークを構築する方法【NN】
今回は、PyTorch を使って、ニューラルネットワーク(NN)を構築したときのメモです。 フ
-
-
【探索】ダイクストラ法・最良優先探索・Aアルゴリズムの比較。
縦型探索や横型探索では、機械的に順序を付け、最小ステップでゴールを目指します。 つまり、
-
-
【機械学習】 scikit-learn で不正解データを抽出する方法【Python】
Python の scikit-learn ライブラリを使って機械学習でテストデータを識別(2クラス
-
-
【Weka】欠損データを自動的に補完するフィルタを使ってみた。
機械学習で用いるデータについてです。データは完璧なことに越したことはないが、通常は、ある属性の値が入
-
-
【Chainer】手書き数字認識をしてみた【Deep Learning】
Chainerを用いて、ニューラルネットワークを構築し、手書き数字認識を行ったときのメモです。
-
-
【機械学習】モンテカルロ法(Monte Carlo method)について。
モンテカルロ法(Monte Carlo method)とは、シュミレーションや数値計算を乱数を用いて
-
-
【TensorFlow】GPUを認識しない時の対処方法【Python】
TensorFlow で GPU を認識させようとしたときにハマってしまったので、その対処方法のメモ
-
-
【機械学習】パーセプトロン(Perceptron)について。
パーセプトロンは、教師あり学習の中でも、入出力モデルベース(eager learning:働き者の学