あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

one two three four looking for the beat
one two three four rocking your heart
tight beat 刻んだ dance on a stage
限界無理矢理突破気味
迷える魂 ramble soul
震える瞬間 Possible time
リアルの体感追い越すClick
CoolなStanding 進めよ World

ChainerのTrainer内で、printによるログとファイル出力によるログを出力することができます。
実際に、train_mnist.pyなどでは、この仕組みを用いて、これら2種類のログを出力しています。
これらのうち、printによるログに関わるコードのみを抽出し、それぞれの命令がどのログ出力に関連しているのかを解析してみました。

train_mnist.pyから、printによるログに関わるコードのみを抽出した結果は以下の通りです。
# プログレスバー
trainer.extend(extensions.ProgressBar())

# 訓練ログ
trainer.extend(extensions.LogReport())
trainer.extend(extensions.PrintReport(
['epoch', 'main/loss', 'validation/main/loss',
'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))

# テストデータのログ出力準備
trainer.extend(extensions.Evaluator(test_iter, model, device=args.gpu))

コメントにある通り、それぞれ、プログレスバー、訓練ログ、テストデータのログ出力準備のための命令です。
trainer.extend(extensions.LogReport())を呼ばないと、それ以下の2命令がエラーになります。
また、trainer.extend(extensions.Evaluator())を呼ばないと、'validation/main/loss'と'validation/main/accuracy’の結果が出力されなくなります。

↑このページのトップヘ