MNISTデータ
手書き数字画像のデータセットであるMNISTを機械学習でよく使う。
これはなんかよくわからない感じで保存されてるので、気軽にViewerで中身を確認したりできない。
不便。
なのでPNGで保存し直して使いやすくする。
従来法
やはり過去にも同じことをやっている人がいる。
chainer
https://qiita.com/kaityo256/items/77bc0b40e3bb70d36f3d
wget
https://www.dogrow.net/nnet/blog28/
が、環境が違う。
私はPytorchの関数がなんか勝手にダウンロードしてきた謎のMNISTデータを使っているので同じようにできない。
なのでPytorchの関数がなんか勝手にダウンロードしてきた謎のMNISTデータをPNGで保存し直すプログラムを作る。
作ったプログラム
↓こんなの。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| # MNISTデータをPNGで保存 import os from torchvision import datasets
# 保存先フォルダ設定 rootdir = "MNIST" traindir = rootdir + "/train" testdir = rootdir + "/test"
# MNIST データセット読み込み train_dataset = datasets.MNIST(root=rootdir, train=True, download=True) test_dataset = datasets.MNIST(root=rootdir, train=False, download=True)
# 画像保存 train number = 0 for img, label in train_dataset: savedir = traindir + "/" + str(label) os.makedirs(savedir, exist_ok=True) savepath = savedir + "/" + str(number).zfill(5) + ".png" img.save(savepath) number = number + 1 print(savepath)
# 画像保存 test number = 0 for img, label in test_dataset: savedir = testdir + "/" + str(label) os.makedirs(savedir, exist_ok=True) savepath = savedir + "/" + str(number).zfill(5) + ".png" img.save(savepath) number = number + 1 print(savepath)
|
Pytorchの関数が作ったデータセットが最初からPILの形式だったので、順番に読みだしてsave
するだけで終わった。
これで、0~9のラベルごとにフォルダ分けして画像が保存される。
こんな感じになった。