cBlog

Tips for you.

ゼロから作るDeep Learning読むお( ^ω^) #2

前回までの「ゼロから作るDeep Learning読むお( ^ω^)」

yaritakunai.hatenablog.com

 

3章 ニューラルネットワーク(3.6節から)

コードについて

ゼロから作るといっても、ソースコードはGitHubにて公開されているのでいちいち入力しなくても作れてしまう。

 

import sys, os
sys.path.append(os.pardir)
  • os.pardirは親ディレクトリのパスを表す文字列定数。つまり、'..'
  • sys.pathはモジュールが検索されるパスを含んだリスト
  • だから、このコードは親ディレクトリのモジュールを使えるようにする

 

今更だけどnp.uint8()がなぜ動くのかわからない。というのは下のドキュメントに関数として載っていないから。どなたか教えてください。

Index — NumPy v1.11 Manual

 

f = open("sample_weight.pkl", 'rb')
network = pickle.load(f)

とするよりも

with open("sample_weight.pkl", 'rb') as f:
    network = pickle.load(f)

とすることを推奨。ファイルのクローズとか勝手に面倒見てくれる。

 

numpy.ndarrayに対してlen()とすると最初の次元の要素数が返される。

 

勉強メモ

  • バッチ処理により演算時間を短縮できる。理由は、数値計算ライブラリの多くは大きな配列の計算の最適化が行われていること、データの読み込み当たりの演算量を大きくとれること

 

感想

Pythonについてあまり知らなくても、ソースコードの部分部分に対して解説してくれるので丁寧だ。その他でわからない記述があってもこの記事が補足になると思う。

C言語での行列計算の経験があるので今のところ読むだけ勉でもなんとかなっている。

今回、初めてニューラルネットワークを動作させた(「推論」フェイズのみ)が、やっぱ「学習」フェイズが本質なので早く先に進みたい。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 
広告