All Articles

chainer document

目的

深層学習の基礎をなんとなく学習し、簡単なCNNを書いてみたのですが、 以外とchainerをフレームワークとして色々な機能を提供していたことに気づき、 新たてちゃんとドキュメントを読み直してみることにしたので、それをここにまとめます。
随時追加していきますが、かなり適当にメモ的に書いています。

  • ここのexampleを見ることでlayerを自作したい時のヒントが得られる。
  • Link.add_param('name', size)は自分でLinkクラスを継承して新しいLinkを定義した際にパラメーターを自クラスに追加する時に使用できる。
  • Link.children returns a generator of all child links
  • Link.links(skipself=False) returns a generator of all links under the hidrarchy
  • 再認識: ChainクラスはLinkをオブジェクトライクにまとめておくインターフェイス
  • Optimizer.tupdate()された回数を参照することができる
  • Optimizer.epochnew_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