はじめに ChainerのTrainer機能が使いこなせないので,自分で訓練ループを書いてます. 先日,自分で評価ループ(Validation)を実装したときにハマったのでメモです. Chainerにおける訓練&評価ループ Chainerにおける訓練のプロセスってだいたい決まっていて, Chainerチュートリアル -v1.5向け- ViEW2015 にもある通りなんですが, 訓練ループを回す(勾配をゼロ初期化,順伝播してlossを計算,得られたlossをbackward, optimizerのupdate) 適当なタイミングで評価ループ(Validation)を回す (順伝搬してlossを計算,得られたlossを出力) これだけです.当たり前ですね〜 ここでのポイントは,訓練ループも評価ループも,順伝搬してlossを計算するのは同じってところですね. ハマりどころ 以上の流れを踏まえると

