【Red Chainer 開発日記】v0.1.1 リリース

ChainerとよばれるPython製の深層学習フレームワークがある。
Red ChainerはChainerをRubyにポーティングしたgemです。 このgemは私が参加しているRed Data Toolsプロジェクトの活動の一貫で開発してます。
詳しくは次にのせる資料を見てください。

speakerdeck.com

Red Chainerはプライベートで開発をしておりコツコツ休日とかに書いてコミットしてはリリースしてます。
リリースタグなどはうってるのですが、折角なのでどんな機能を開発したかとかを記録として時々書いていこうと思う。

0.1.1で開発された機能

  • LogReport, PrintReport, ProgressBar extensionsの追加

LogReport, PrintReport, ProgressBar extensionsの追加

Chainerにはextensionsとよばれるログ出力や進捗表示、スナップショットをとるクラスが提供されている。
今回はこの中の3つをRubyにポーティングした。

  • LogReport: trainerの途中経過をログとしてファイルに出力
  • PrintReport: LogReportの中身を出力
  • ProgressBar: 進捗を出力

このリリースにより次のようなコードを定義することが出来るようになった。

trainer.extend(Chainer::Training::Extensions::LogReport.new)
trainer.extend(Chainer::Training::Extensions::PrintReport.new(['epoch', 'main/loss', 'validation/main/loss', 'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))
trainer.extend(Chainer::Training::Extensions::ProgressBar.new)

f:id:hatappi1225:20171013233759p:plain

この開発によって今まで上の画像のような今のitrerationとそれに応じたaccuracyを随時出力が次の画像のようになる。

f:id:hatappi1225:20171013234243p:plain

一気にリッチな感じになった 🎉