LoginSignup
12
9

More than 5 years have passed since last update.

最小限のコード変更でchainerの学習曲線を監視する

Last updated at Posted at 2017-12-11

はじめに

皆さんはDLをまわしているときどうしていますか? 論文を読む、酒を飲む、寝る、など色々とあると思いますが、自分は我慢ができない質なので損失曲線をちらちら眺めるのが好きです。ただ、chainerには残念ながらデフォルトの可視化ツールがついていません。1 そこで、本記事では最小限のコード変更でchainerの学習曲線を監視する方法を紹介します。

本記事は、Chainer Advent Calendar 2017の12日目です.

やること

PyPIから私謹製のライブラリをインストールします。

shell
pip install chainerboard

そして、trainerにLogReportを追加します。

python
trainer.extend(extensions.LogReport(log_name='my_log_data')))

そして、

shell
chainerboard path/to/output/my_log_name

としたうえ、http://localhost:6006/ を開くと下記のような学習曲線を見ることができます。

screenshot1.gif

ウェブアプリベースなのでリモートサーバで立ち上げて、それをみることもできます。2
またPlotlyベースなので、拡大やら、画像へのエキスパートなどが簡単にできます。

ヒストグラムも監視する

学習がうまくいかないときなど、データの分布をみることで、重みが大きくなりすぎて不安定になっているだとかを見ることができます。
これも、最小限のコード変更でできて、

python
trainer.extend(extensions.ParameterStatistics(model))

を1行足すだけです。

screenshot2.png

ただし、バグによって現在GPUを使っているとこの機能は使えません。

Related Works

この記事を書いていて知ったのですが、Tensorboardをchainerで使えるようにするtensorboard-chainerなるプロジェクトもあるようです。比較をしてみると、

chainerboard tensorboard-chainer
任意の数値の監視
ヒストグラム
計算グラフの可視化 ×
画像、音声など ×
コード修正の必要

とまあ、機能的にはtensorboard-chainerのほうが勝っていますが、モデル自体にコードを書き足す必要があるtensorboard-chainerとは一応のすみ分けはできているのかな、と。

2017/12/22追記

Advent Calender 20日目にて公式のChainer UIが公開されました。まさかの痛恨の更新とのネタかぶり笑

まとめ

いつもどおり切羽詰まってしまったせいで chainerboardの使い方が簡単なので随分短い記事になってしまいました。ほとんど変更なしで使えるので、もし可視化が必要な方がいれば使ってみてください。もちろん、プルリクウェルカムです。


  1. PlotReportとかありますが、リアルタイムに監視はできない。 

  2. 認証とかついていないし、私はウェブプログラム素人なので、セキュリティは自分で担保してください。 

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9