ゼロから作るDeep Learningを読みながらコードを実行する.
詰まったところなどを書いていく.
#環境
-Windows10
-Ubuntu on Windows
-python3
#Python環境の構築
numpyはすでに入っていたが,matplotlibは入っていなかったのでコマンドでインストールした.
$ sudo apt-get install python3-matplotlib
#1.6.1 単純なグラフの描画
show()が使用できない
Xmingを導入する必要があるぽい
http://qiita.com/makky0620/items/e31edc90f22340d791ff
以下のサイトからXmingをダウンロード
https://ja.osdn.net/projects/sfnet_xming/
Xming-6-9-0-31-setup.exe
Xming-fonts-7-7-0-10-setup.exe
2ファイルを実行してインストールした.
右下のバーでアイコンにマウスを当てるとXming server:0.0
と表示される(参考サイト通り)
環境変数に入力する.
$ export DISPLAY=localhost:0.0
$ xclock
時計の表示に成功した.
show()で表示されるようになった.
#1.6.2
legend()は凡例をつける関数のようだ
#?
Xmingを入れたせいか,キーボードがUSになっていた.
#1.6.3
画像を読み込んで表示するときにエラーが発生した
Traceback (most recent call last):
File "img.py", line 5, in <module>
plt.imshow(img)
File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 2881, in imshow
ax = gca()
File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 803, in gca
ax = gcf().gca(**kwargs)
File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 450, in gcf
return figure()
File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 423, in figure
**kwargs)
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager
return new_figure_manager_given_figure(num, figure)
File "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure
window = Tk.Tk()
File "/usr/lib/python3.4/tkinter/__init__.py", line 1854, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
と思ったが,export DISPLAY=localhost:0.0
を忘れていた.
ターミナルを再起動したら,その度に環境設定をしなおさないといけない.
.bashrcに書く.
#3.6.1
mnist.pyはdatasetディレクトリにある,と書いてあるがdatasetディレクトリとはなんのことだろう.
Anacondaディストリビューションを入れろと書いてあったが,入れなかったことと関係があるのだろうか.
オライリーのサイトの本紹介ページからGitHubにリンクがあった.
https://github.com/oreilly-japan/deep-learning-from-scratch
ダウンロードする.
$ git clone https://github.com/oreilly-japan/deep-learning-from-scratch.git
PILを使用した画像の表示ができない.
pil_img.save("output.png")
でファイル保存はできる.
Imagemagickなるものを入れると表示できるらしい.
http://d.hatena.ne.jp/kimihito/20120508/1336461904
$ sudo apt-get install imagemagick
写経しているためpickleが未定義とエラーが出た.
import pickle
する.
#4.4.1
ハイパーパラメータはニューラルネットワークのパラメータと異なり,人の手で調節するらしい.このパラメータも自動で獲得できないかな.
#4.4.2
本文の(どうでもよい)ミスを発見した.1刷と6刷で同様であることを確認した.
\>>> net = simpleNet()
\>>> print(net.W) # 重みパラメータ
[[ 0.47355232, 0.9977393 , 0.84668094],
[ 0.85557411, 0.03563661, 0.69422093]])
\>>>
\>>> x = np.array([0.6, 0.9])
\>>> p = net.predict(x)
\>>> print(p)
[ 1.13282549 0.66052348 1.20919114]```
上記の対話式コードが載っているが,最後のprintの結果は数値的には`[ 1.05414809 0.63071653 1.1328074 ]`になる.
net.Wは乱数で生成するため,一度実行してnet.predict(x)を本の原稿に書き写した後,net.Wを再生成してnet.Wを本の原稿に書き写したのかな.
lambdaは無名関数を作る構文である.
`f = lambda w: net.loss(x, t)`
と
```def f(x):
return net.loss(x, t)```
はおそらく等価である.