MNISTデータをPNGで保存(Pytorch)

MNISTデータをPNGで保存(Pytorch)

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のラベルごとにフォルダ分けして画像が保存される。




こんな感じになった。

タグ

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×