前回までの「ゼロから作るDeep Learning読むお( ^ω^)」
3章 ニューラルネットワーク(3.6節から)
コードについて
ゼロから作るといっても、ソースコードはGitHubにて公開されているのでいちいち入力しなくても作れてしまう。
import sys, os
sys.path.append(os.pardir)
os.pardir
は親ディレクトリのパスを表す文字列定数。つまり、'..'
sys.path
はモジュールが検索されるパスを含んだリスト- だから、このコードは親ディレクトリのモジュールを使えるようにする
今更だけどnp.uint8()
がなぜ動くのかわからない。というのは下のドキュメントに関数として載っていないから。どなたか教えてください。
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で学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (17件) を見る