7,789 views
この記事は最終更新から 1920日 が経過しています。
下記投稿では、MNIST画像データファイルをダウンロードした。
(1) MNIST画像データをダウンロード
下記投稿では、MNIST画像データのいくつかを Octaveで画像化して眺めてみた。
(2) MNIST学習画像を見てみる
今回は、MNIST画像データファイルに含まれる全画像を PNG画像 にして眺めてみたい。
今回も GNU-Octaveを使用する。Octaveは少ないコード量で高機能なプログラムを書けるので重宝している。
作成する関数は cre_MNIST_PNG とする。
第1引数は、MNIST画像データファイルのパス。学習用 or テスト用のどちらか一方を指定する。
第2引数は、PNG化したMNIST画像の出力先ディレクトリのパス。
【注意】
第1引数で渡すファイルは、(1) MNIST画像データをダウンロード に記したように事前に解凍しておくこと。
function cre_MNIST_PNG( image_file, output_dir ) % 画像をロード fid = fopen(image_file,'r','b'); magic_number = fread(fid, 1, 'int32'); number_of_items = fread(fid, 1, 'int32'); number_of_rows = fread(fid, 1, 'int32'); number_of_columns = fread(fid, 1, 'int32'); img = fread(fid, [number_of_rows*number_of_columns number_of_items],'uint8'); image = permute(reshape(img, number_of_rows, number_of_columns,number_of_items),[2 1 3]); fclose(fid); % 画像をPNGファイル出力 if exist(output_dir)==0 mkdir(output_dir); end for i=1 : number_of_items pngfile = sprintf('%s/img%05d.png', output_dir, i); imwrite(uint8(image(:,:,i)), pngfile); end end
まずはテスト用画像 t10k-images-idx3-ubyte をPNG画像化してみる。
octave:1> cre_MNIST_PNG('t10k-images-idx3-ubyte','./img'); octave:2>
以下のようなPNG画像ファイルが出力された。(全10,000個の内の先頭から105個を表示)
次回「(4) シンプル構成の初版は正解率91%」では、実際に機械学習プログラムを作成して MNIST画像の自動認識をやってみる。