DEEPLEARNINGJP
[DL HacksLT] Comet ML – GitHub-
Hiromi Nakagawa, Matsuo Lab
http://deeplearning.jp/
• 機械学習の実験支援ツール
• できること
– 実験結果の記録・比較
– ハイパーパラメータやネットワーク構造の保存
– 実行コードの保存
• 公式サポート:Keras, TensorFlow, PyTorch, scikit-learn, Theano
– Chainerも使えるらしい
What is CometML?
• 無料プランでもPubic Projectは無制限、 Private Projectは1つ
– 課金するとチーム機能やベイズ最適化によるハイパーパラメータ探索機能が使えたりする
What is CometML?
• 機械学習プロダクトの開発工程→「実験(Experiments)」が重要
• モデルの構造やハイパーパラメータなど、様々な条件のもと繰り返し行われる
– 設定ごとの結果や、他の設定との比較を一覧したい
– Gitでの管理とあまり相性が良くない
• CometMLを使うことで「実験」単位の管理や比較が簡単に
• チーム内での情報共有もしやすい
Why CometML?
• Tensorboardより詳細な記録が可能
• 複数実験の管理や比較が行いやすい
– Tensorboardは単一実験にフォーカス
• リモート環境で確認できる
– Tensorboardはローカル環境での起動が前提
Tensorboardとの違い
How to use
1. アカウントの登録
• Projects > New Projects
– API Keyを取得
– 初回はQuick Start Guideに従えばOK
2. プロジェクトの作成
3. comet_mlライブラリのインストール
1. Experimentインスタンスを作成
– api_key:APIキー(複数プロジェクトで使い回せる)
– project_name:プロジェクト名
– team_name:チーム名
– log_code:実行コードを記録する(Default=True)
– auto_param_logging:ハイパーパラメータを記録する(Default=True)
– auto_metric_logging:Metricsを記録する(Default=True)
4. 訓練用スクリプトにトラッキング用コードを追加
2. ハイパーパラメータを記録
4. 訓練用スクリプトにトラッキング用コードを追加
または
3. metricを記録
– stepはイテレーション数やエポック数などを記録
– 可視化時のグラフのX軸に利用できる
4. 訓練用スクリプトにトラッキング用コードを追加
または
4. with句の中で訓練・評価することでトラッキング
4. 訓練用スクリプトにトラッキング用コードを追加
• Projectページに行くと実験ごとの結果が確認できる
– カラムは編集可能でフィルタリングやソートなども可能
5. 可視化
• Chart:スクリプト内で保存した変数の時系列グラフが確認できる
5. 可視化
• Code:実行した際のコードが確認できる
5. 可視化
• Metric:Chartに表示する項目の選択や最大値・最小値の確認が可能
5. 可視化
• Output:実行時の標準出力を確認できる
5. 可視化
• 複数実験を比較することも可能
5. 可視化
• グラフはJPEG/PNG/SVG/PDFでダウンロード可能
• モデル構造のグラフや画像データも記録可能
• Notesで実験ごとにコメントを残せる
• Githubのレポジトリと連携させることでPull Requestも送れる
その他
• 便利そう
まとめ
• comet.ml
– https://www.comet.ml
• 機械学習のためのGithub、CometMLを使ってみた
– https://medium.com/liaro-engineering-
blog/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEgithu
b-cometml%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F-eed920be46c9
• Chainerでcomet.mlを使って学習を可視化してみた
– https://qiita.com/29Takuya/items/00c1f4fef5983cdf1c54
参考文献

[DLHacks]Comet ML -機械学習のためのGitHub-