MNIST データセットのフォーマット

MNISTとは

画像認識の機械学習でよく用いられる手書き文字のデータセット

8bitのグレースケール画像であり,サイズは28x28

MNISTデータセット

下からダウンロードできる yann.lecun.com

それぞれバイナリファイルなのでemacsなどのエディタで普通に開いても中のデータを見ることはできない

  • train-images-idx3-ubyte.gz :トレーニングセットのイメージデータ (60000セット)
  • train-labels-idx1-ubyte.gz :トレーニングセットのラベルデータ (60000セット)
  • t10k-image-idx3-ubyte.gz :テストセットのイメージデータ (10000セット)
  • t10k-labels-idx1-ubyte.gz :テストセットのラベルデータ (10000セット)

データセットのフォーマット

イメージファイル

$ gzip -d train-images-idx3-ubyte.gz
$ xxd train-images-idx3-ubyte | head -n2
00000000: 0000 0803 0000 ea60 0000 001c 0000 001c  .......`........
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
  • マジックナンバー (0x00000803) : 32bit
  • データ数 (60000 or 10000) : 32bit
  • 次元0 のサイズ (28) : 32bit
  • 次元1 のサイズ (28) : 32bit 以降データの画素[0][0]から順に符号なし8bitでデータが並ぶ

ラベルファイル

$ gzip -d train-labels-idx1-ubyte.gz
$ xxd train-labels-idx1-ubyte | head -n2
00000000: 0000 0801 0000 ea60 0500 0401 0902 0103  .......`........
00000010: 0104 0305 0306 0107 0208 0609 0400 0901  ................
  • マジックナンバー (0x00000801) : 32bit
  • データ数 (60000 or 10000) : 32bit 以降8bitずつラベルデータが入る

※イメージファイルの順にラベルデータが入っているので順番は大切

参考

yann.lecun.com