Comet.ml使ってみた
深層学習の学習過程をお手軽に可視化するツールComet.mlを使ってみました。簡単なスクリプトを貼り付けるだけでハイパラ 、エポックごとのスコア、GPUの稼働状況など様々なログを取ることができました。
一方で、見え過ぎてしまう側面もあったのでパブリック版の利用には注意が必要です。
目次
Comet.ml
以前DL勉強会で名前を聞きました。
公式のチュートリアルやググって出てきた紹介記事を参考に動かしてみます。
例えばこんな感じ。
from comet_ml import Experiment
# commet ml
experiment = Experiment(api_key=YOUR_API_KEY,
project_name=YOUR_PROJECT_NAME)
# ハイパラ設定後ににハイパラ記録を挟む
hyper_params = {
'learning_rate': 0.5,
'steps': 100000,
'batch_size': 50
}
experiment.log_parameters(hyper_params)
# trainの各epochにスコア記録を挟む
for epoch in epochs:
...
metrics = {
'train_score': train_score,
'dev_score': dev_score,
'test_score': test_score
}
experiment.log_multiple_metrics(metrics, step=epoch)
log_parameters()によるハイパラ保存、log_metrics()によるスコア保存を把握しておけば最低限使えそうです。
(一年前の記事とかだとlog_multiple_params(), log_multiple_metrics()を使っていますが、削除したから新しい方使ってねと警告が出ます(機能はする)。)
するとこれだけで、ハイパラやスコアが記録されます。


標準出力を記録してくれるのもすごくありがたい。いちいちSSH接続してログファイル見るの面倒ですしね。

なお各プロジェクトの実験はそれぞれ別々に記録してくれます。便利。

すごくサクサク使えてストレスを感じません。UIもイケてていい感じでした。
まだまだ機能を使いこなせていないですが、プロジェクトのトップページでは各実験の比較ができるみたいです。
お値段
Publicなプロジェクトなら無料でいくらでも作成可能です。
Privateで作りたかったらいきなり月額$39となかなかヘビーです。

お金さえ気にしなければとても使いやすいサービスですね。
注意点
ご丁寧にコードまで見ることができてしまいます。特に無料版でPublicにしている方は、コードが見られてしまうので研究や実務などの大事なコード、API KEYなどの晒しちゃダメな情報には気をつけましょう。

さらにはOS情報やユーザ名まで丸裸、

Gitの状態も丸裸です。

既存のパブリックなコードをいじったお試し実験やデータ自体が肝となるプロジェクトなら問題ないので使い様ですね。
それか素直に課金するか、です。
もう一点、コンソールで色々操作することができるのですがそれらの操作内容が保存されないのはイマイチですね。並び替えとかは記憶しててほしい。
他にも学習過程の可視化ツールはあるので使いやすいものがあれば試してみたいです。visdom, tensorboardあたりですかね。