ゼロから作るDeepLearningの学習用として、windows10環境にPython Japanから入手したPython3.6.5をインストールして使っています。
Anaconda3も
https://www.anaconda.com/
からダウンロードして入れました。
githubの
https://github.com/oreilly-japan/deep-learning-from-scratch
から、本書で出てくる例題がすべてダウンロードできますので、すべてを適当なホルダに格納しておいて、コマンドプロンプトからそのホルダに移動して*.pyファイルを実行できます。
たとえば、例題をc:\deeplearningにすべて格納しているとすると、p.9に出てくるhungry.pyは、コマンドプロンプトから、
c:\deeplearning\ch01>hungry.py
と入力してenterすれば実行されます。
このやり方で学習を進めていきましたが、3章のmnist_show.pyを実行しようとすると次のようなエラーが出ます。
ModuleNotFoundError: No module named 'PIL'
これはネット上でも話題になっていて、PILライブラリがpillowというものに置き換わったことが原因だそうで、pillowをインストールすれば解決します。
コマンドプロンプトを管理者モードで起動し、
c:\WINDOWS\system32>py -m pip install pillow
のようにして、pillowをインストールします。
これでめでたくmnist_show.pyが起動できるかと思いきや、
c:\deeplearning\ch03>mnist_show.py
とすると画像が出るところでペイント3Dを起動しようとしてエラーが出ます。
よくわかりませんが、生成されたビットマップデータがペイント3Dで開けないというようなことかもしれません。
そこで、mnist_show.pyを次のように変更します。
変更箇所は#####でコメントを入れました。
# coding: utf-8
import sys, os
import matplotlib.pyplot as plt #####追加行1
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) #####コメントアウト
plt.imshow(img) #####追加行2
plt.show() #####追加行3
つまり、image_showを使おうとするとペイント3Dを起動して失敗するので、pyplotを使って表示させています。
お役に立てれば幸いです。