ChainerとよばれるPython製の深層学習フレームワークがある。
Red ChainerはChainerをRubyにポーティングしたgemです。
このgemは私が参加しているRed Data Toolsプロジェクトの活動の一貫で開発してます。
詳しくは次にのせる資料を見てください。
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)
この開発によって今まで上の画像のような今のitrerationとそれに応じたaccuracyを随時出力が次の画像のようになる。
一気にリッチな感じになった 🎉