step にログします。W&B は各 step でキーと値のペアを収集し、wandb.Run.log() でデータをログするたびに、それらを 1 つの統一された辞書に保存します。スクリプトからログされたデータは、まずローカルマシン上の wandb というディレクトリに保存され、その後 W&B クラウドまたはあなたの プライベートサーバー に同期されます。
キーと値のペアが 1 つの統一された辞書に保存されるのは、各
step に対して同じ値を渡した場合のみです。step に異なる値をログした場合、W&B は収集したすべてのキーと値をメモリ上に保持します。wandb.Run.log() を呼び出すたびに、デフォルトでは新しい step が作成されます。W&B はチャートやパネルを作成する際、デフォルトの x 軸として step を使用します。必要に応じて、カスタムの x 軸を作成して使用したり、カスタムのサマリーメトリクスを記録したりできます。詳細は ログ軸をカスタマイズする を参照してください。
自動的に記録されるデータ
- システムメトリクス: CPU と GPU の使用率、ネットワークなど。GPU については、
nvidia-smiを使って取得します。 - コマンドライン: stdout と stderr が取得され、run ページの Logs タブに表示されます。
- Git commit: 最新の git commit を取得し、run ページの Overview タブに表示します。未コミットの変更がある場合は、
diff.patchファイルも保存されます。 - 依存関係:
requirements.txtファイルがアップロードされ、run ページの Files タブに表示されます。加えて、その run 用にwandbディレクトリに保存したファイルも表示されます。
特定の W&B API 呼び出しでどのようなデータがログされますか?
- Datasets: 画像やその他のデータセットサンプルを W&B にストリーミングするには、それらを明示的にログする必要があります。
- Plots:
wandb.plot()とwandb.Run.log()を組み合わせて使うとチャートを追跡できます。詳細は Log Plots を参照してください。 - Tables:
wandb.Tableを使ってデータをログし、W&B 上で可視化およびクエリできます。詳細は Log Tables を参照してください。 - PyTorch の勾配:
wandb.Run.watch(model)を追加すると、UI 上で重みの勾配をヒストグラムとして確認できます。 - 設定情報: ハイパーパラメータ、データセットへのリンク、使用しているアーキテクチャ名などを config パラメータとしてログします。次のように渡します:
wandb.init(config=your_config_dictionary)。 - Metrics:
wandb.Run.log()を使ってモデルからのメトリクスを確認できます。学習ループ内から accuracy や loss などのメトリクスをログすると、UI 上のグラフがリアルタイムに更新されます。
メトリクス名の制約
- 使用可能な文字: 英字 (A-Z, a-z)、数字 (0-9)、アンダースコア (_)
- 先頭文字: 名前は英字またはアンダースコアで始まる必要があります
- パターン: メトリクス名は
/^[_a-zA-Z][_a-zA-Z0-9]*$/に一致する必要があります
一般的なワークフロー
-
最高精度を比較する: run 間で特定のメトリクスの最高値を比較するには、そのメトリクスのサマリー値を設定します。デフォルトでは、サマリーには各キーに対して最後にログした値が設定されます。これは UI のテーブルで役立ちます。サマリーのメトリクスに基づいて run をソートおよびフィルタリングできるため、最終精度ではなく 最高 精度に基づいて、テーブルや棒グラフで run を比較できます。例:
wandb.run.summary["best_accuracy"] = best_accuracy -
複数のメトリクスを 1 つのチャートで表示する: 同じ log 呼び出しで複数のメトリクスをログします。例:
その後、UI で両方のメトリクスをプロットできます。
-
x 軸をカスタマイズする: 同じ log 呼び出しでカスタム x 軸を追加して、W&B ダッシュボードで別の軸に対するメトリクスを可視化します。例:
特定のメトリクスのデフォルトの x 軸を設定するには、Run.define_metric() を使用します。
-
リッチメディアとチャートをログする:
wandb.Run.log()は、画像や動画などのメディアから、テーブルやチャートまで、さまざまなデータ型のログに対応しています。