wandb.log()
でデータをログするたびにそれらを統一された辞書に格納します。スクリプトからログされたデータは、wandb
と呼ばれるディレクトリにローカルに保存され、その後 W&B クラウドまたは プライベートサーバー に同期されます。
キーと値のペアは、各ステップに同じ値を渡した場合にのみ統一された辞書に保存されます。
step
に異なる値をログした場合、W&B はすべての収集されたキーと値をメモリに書き込みます。wandb.log
を呼び出すたびに新しい step
になります。W&B は、チャートやパネルを作成する際にステップをデフォルトの x 軸として使用します。カスタムの x 軸を作成して使用するか、カスタムの要約メトリックをキャプチャすることも選択できます。詳細は、ログの軸をカスタマイズするを参照してください。
wandb.log()
を使用して、各 step
の連続する値をログします: 0, 1, 2, といった具合です。特定の履歴ステップに書き込むことは不可能です。W&B は「現在」と「次」のステップにのみ書き込みます。自動でログされるデータ
W&B は、W&B Experiment 中に次の情報を自動でログします:- システムメトリクス: CPU と GPU の使用率、ネットワークなど。これらは run ページ のシステムタブに表示されます。GPU に関しては、
nvidia-smi
で取得されます。 - コマンドライン: stdout と stderr が取得され、run ページ のログタブに表示されます。
- Git コミット: 最新の git コミットを取得し、run ページの overview タブに表示されます。コミットされていない変更がある場合は
diff.patch
ファイルも表示されます。 - 依存関係:
requirements.txt
ファイルがアップロードされ、run ページのファイルタブに表示されます。run 用にwandb
ディレクトリに保存したファイルも含まれます。
特定の W&B API 呼び出しでログされるデータ
W&B を使用することで、ログしたいものを正確に決定できます。次に、よくログされるオブジェクトのリストを示します:- Datasets: 画像や他のデータセットサンプルを W&B にストリームするためには、特にログする必要があります。
- Plots: グラフを追跡するために
wandb.plot
をwandb.log
と一緒に使用します。詳細はログでのグラフを参照してください。 - Tables:
wandb.Table
を使用してデータをログし、W&B でビジュアライズおよびクエリを行います。詳細はログでのテーブルを参照してください。 - PyTorch 勾配: モデルの重みの勾配を UI にヒストグラムとして表示するために
wandb.watch(model)
を追加します。 - 設定情報: ハイパーパラメーター、データセットへのリンク、使用しているアーキテクチャーの名前などを設定パラメーターとしてログします。このように渡します:
wandb.init(config=your_config_dictionary)
。詳細はPyTorch インテグレーションページをご覧ください。 - メトリクス:
wandb.log
を使用してモデルのメトリクスを表示します。トレーニングループ内で精度や損失のようなメトリクスをログすると、UI にライブ更新グラフが表示されます。
一般的なワークフロー
- 最高の精度を比較する: Runs 間でメトリクスの最高値を比較するには、そのメトリクスの要約値を設定します。デフォルトでは、各キーの最後にログした値が要約に設定されます。これは UI のテーブルで、要約メトリクスに基づいて run を並べ替えたりフィルタリングしたりするのに便利です。best の精度に基づいてテーブルまたは棒グラフで run を比較するのに役立ちます。例:
wandb.run.summary["best_accuracy"] = best_accuracy
- 複数のメトリクスを1つのチャートで表示:
wandb.log
の同じ呼び出し内で複数のメトリクスをログすると、例えばこうなります:wandb.log({"acc": 0.9, "loss": 0.1})
。UI ではどちらもプロットすることができます。 - x 軸をカスタマイズする: 同じログ呼び出しにカスタム x 軸を追加して、W&B ダッシュボードで別の軸に対してメトリクスを視覚化します。例:
wandb.log({'acc': 0.9, 'epoch': 3, 'batch': 117})
。特定のメトリクスに対するデフォルトの x 軸を設定するには、Run.define_metric() を使用してください。 - リッチメディアとチャートをログする:
wandb.log
は、画像やビデオのようなメディアからtablesやchartsに至るまで、多様なデータタイプのログをサポートしています。