初学TensorFlow(一)--MNISTデータセット関連事例

1331 ワード

from tensorflow.examples.tutorials.mnist import input_data
import scipy.misc
import os

関連ライブラリファイルをインポートします.
1、input_Dataは主にmnistデータセットを含む大量のデータであり、公式に関連するテストに必要なデータを導出するために使用される.
2、scipy.miscは主に、指定されたパスの下のピクチャを表示するために以下で使用されるtoimage関数などの画像の入出力関数を含む.
3、osは主にファイルとその経路に関する関数を含み、以下で用いるos.path.exists()は、そのパスのファイルが存在するか否かを判断するためのものである.
mnist  = input_data.read_data_sets("MNIST_data/",one_hot=True)

関連する実験データを導入し、TensorFlowが公式に提供したMNISTデータセットからローカルにダウンロードする.ここでは4つの圧縮ファイルが入らないなどの穴に遭遇しやすい.この場合、公式サイトに行って4つの圧縮ファイルを手動でダウンロードし、プロジェクト関連フォルダに直接切り取ることができる.この時warningが現れるかもしれませんが、この時は気にしないでください.warningはバージョンの問題のためですが、関連データは操作できます.
save_dir = 'MNIST_data/raw/'
if os.path.exists(save_dir) is False:
    os.mkdir(save_dir)

画像を保存するパスを設定します.os.path.exists(path)という関数は、そのファイルが存在するか否かを判断するために用いる、存在しなければosを行う.mkdir()は、関連するピクチャセットを格納するフォルダを作成します.
for i in range(20):
    image_array = mnist.train.images[i, :]
    image_array = image_array.reshape(28,28)

    filename = save_dir + 'mnist_train_%d.jpg' % i
    scipy.misc.toimage(image_array,cmin=0.0,cmax=1.0).save(filename)

このループは20枚のピクチャを格納するために用いられ,元のデータセットピクチャ情報は1次元配列で表されていたが,reshape()関数を用いて1次元画像配列を2次元配列に変換し,関連フォルダの下に格納する.要素の値範囲は[0,1]です.