chainer document
目的
深層学習の基礎をなんとなく学習し、簡単なCNNを書いてみたのですが、
以外とchainerをフレームワークとして色々な機能を提供していたことに気づき、
新たてちゃんとドキュメントを読み直してみることにしたので、それをここにまとめます。
随時追加していきますが、かなり適当にメモ的に書いています。
- ここのexampleを見ることでlayerを自作したい時のヒントが得られる。
Link.add_param('name', size)は自分でLinkクラスを継承して新しいLinkを定義した際にパラメーターを自クラスに追加する時に使用できる。Link.childrenreturns a generator of all child linksLink.links(skipself=False)returns a generator of all links under the hidrarchy- 再認識:
ChainクラスはLinkをオブジェクトライクにまとめておくインターフェイス Optimizer.tはupdate()された回数を参照することができるOptimizer.epochはnew_epoch()された回数- chainer関係ないメモ
- clipping gradients -> 勾配が大きくなりすぎないように、gradientの値を計算した後に値が閾値を超えていたら修正する
optimizer.GradientNoise()勾配計算の後に勾配にnoiseを加えたい時にhookしておけるdataset.DatasetMixin()データセットを定義する際のbaseクラス 参考dataset.concat_examples(batch, ...)データセットに他のバッチを連結する関数- trainerの例
- trainerはプロパティとして、
elasped_timeを持っていて学習に要した時間を蓄えておくことができる。 - ここでインスタンス化される
Trainer()の第二引数に渡されている(20, 'epoch')はstop_trigger()に渡されるrun()が終了する条件 chainer.set_debut(True)でdebugモードすることができる。chainer.computational_graph.build_computational_graph(outputs, ...)を使用することで、outputsからネットワークの構造をグラフにしてファイルに出力してくれる。
Published 9 Jan 2017