あかすくぱるふぇ

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

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’の結果が出力されなくなります。

ググったらプラグインとか使い方とか色々出てくるんですが、いきなりアレも
コレもというのは気持ち悪いんで、最低限必要そうなものを抽出してみました。


・NeoBundle
Vimのプラグイン管理ツールです。

下記記事を参照して、neobundle.vimを配置します。
http://qiita.com/muran001/items/3080c4816b7c2e65e40b

.vimrcの"NeoBundle ***" のところに入れたいプラグインを書いて、
vim上で:NeoBundleInstallとコマンドするだけでプラグインが入ります。


・clang_complete
コード補完プラグインです。
.vimrcにNeoBundle 'Rip-Rip/clang_complete'と書いてインストール。
なお、clangというコンパイラが必要なので、なければapt-getとかで入れます。
あと、インクルードパスの設定については以下の記事を参照してください。
http://tatsukawa.hatenablog.com/entry/2014/12/26/031050


・ctags
関数などの定義に飛ぶために使います。
以下の記事を参照して導入してください。
http://qiita.com/lazynick/items/6934341f135b1a8d2fe2


・Vim、シェルの操作
Vimを開いた後、Ctrl+Zでシェルに戻れ、fgコマンドでまたVimに戻れます。
":sp ファイル名"で画面分割して複数のファイルを同時に開けます。


あとはcmakeとかでビルドできれば、とりあえずVisual Studioでのコーディングと
実行の手順は再現できるのではないでしょうか。

デバッグはしらね(えぇ…

↑このページのトップヘ