2017年07月24日

ディープラーニング本のサンプルプログラム(2)・・・3章のmnist_show.py

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

deeplearning1.jpg

この本を学習しています。

この本の構成は次の通りです。

1章 Python入門
2章 パーセプトロン
3章 ニューラルネットワーク
4章 ニューラルネットワークの学習
5章 誤差逆伝播法
6章 学習に関するテクニック
7章 畳み込みニューラルネットワーク
8章 ディープラーニング
付録A Softmax-with-Loss レイヤの計算グラフ
参考文献

この学習本のサンプルプログラムを紹介しています。

今回は次のプログラムです。

ファイル名:mnist_show.py
----------------------------------------------------------------
# coding: utf-8
import sys, os
sys.path.append(os.pardir) # 親ディレクトリのファイルをインポートするための設定
import numpy as np
from dataset.mnist import load_mnist
from PIL import Image


def img_show(img):
pil_img = Image.fromarray(np.uint8(img))
pil_img.show()

(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)

img = x_train[0]
label = t_train[0]
print(label) # 5

print(img.shape) # (784,)
img = img.reshape(28, 28) # 形状を元の画像サイズに変形
print(img.shape) # (28, 28)

img_show(img)
----------------------------------------------------------------

実行結果は次のような画像が表示されます。

図1.jpg

真ん中の部分を拡大すると次のようになります。

数字5-1.jpg

手書きの数字の5ですが、手書きなので個人のクセがあり少し判別しづらいですね。でも、ディープラーニングだとこういう手書きの5でも数字の5だと判別するのです。

ちなみにこの手書きの5のデータは次のようになっています(28×28形式にしてあります)。

gazou5data1.jpg
(※画像をクリックすると拡大して見れます。)

数値は0〜255までの値を取ります。この値によって白黒の濃淡が決まります。

それでExcelのセルの背景にこの値を反映させて濃淡をつけてみたのが次の図です。

gazou5data2.jpg

オリジナルを再現しています。

なかなか面白いですね。

今回はここまでです。

posted by tsurutsuru at 11:52| Comment(0) | 日常茶飯事