LoginSignup
5
9

More than 5 years have passed since last update.

ゼロから作るDeep Learning

Last updated at Posted at 2017-01-31

ゼロから作る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刷で同様であることを確認した.
P. 111
\>>> 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)

はおそらく等価である.

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9