run は、W&B によってログされる計算の単一の単位です。W&B の run は、プロジェクト全体の原子要素と考えることができます。つまり、各 run は、モデルのトレーニングと結果のログ、ハイパーパラメーターの スイープ など、特定の計算の記録です。
run を開始する一般的なパターンには、以下が含まれますが、これらに限定されません。
- モデルのトレーニング
- ハイパーパラメーターを変更して新しい 実験 を行う
- 異なるモデルで新しい 機械学習 実験 を行う
- W&B Artifact として データ またはモデルをログする
- W&B Artifact をダウンロードする
W&B は、作成した run を プロジェクト に保存します。run とそのプロパティは、W&B App UI の run の プロジェクト ワークスペース 内で表示できます。また、wandb.Api.Run
オブジェクトを使用して、プログラムで run のプロパティに アクセス することもできます。
run.log
でログするものはすべて、その run に記録されます。次のコードスニペットを検討してください。
import wandb
run = wandb.init(entity="nico", project="awesome-project")
run.log({"accuracy": 0.9, "loss": 0.1})
最初の行は、W&B Python SDK をインポートします。2 行目は、エンティティ nico
の下の プロジェクト awesome-project
で run を初期化します。3 行目は、モデルの 精度 と 損失 をその run にログします。
ターミナル 内で、W&B は以下を返します。
wandb: Syncing run earnest-sunset-1
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb:
wandb:
wandb: Run history:
wandb: accuracy
wandb: loss
wandb:
wandb: Run summary:
wandb: accuracy 0.9
wandb: loss 0.5
wandb:
wandb: 🚀 View run earnest-sunset-1 at: https://wandb.ai/nico/awesome-project/runs/1jx1ud12
wandb: ⭐️ View project at: https://wandb.ai/nico/awesome-project
wandb: Synced 6 W&B file(s), 0 media file(s), 0 artifact file(s) and 0 other file(s)
wandb: Find logs at: ./wandb/run-20241105_111006-1jx1ud12/logs
ターミナル で W&B が返す URL は、W&B App UI の run の ワークスペース にリダイレクトします。ワークスペース で生成される パネル は、単一のポイントに対応していることに注意してください。

単一の時点での メトリクス のログは、それほど役に立たない場合があります。判別モデルのトレーニングの場合のより現実的な例は、一定の間隔で メトリクス をログすることです。たとえば、次のコードスニペットを検討してください。
epochs = 10
lr = 0.01
run = wandb.init(
entity="nico",
project="awesome-project",
config={
"learning_rate": lr,
"epochs": epochs,
},
)
offset = random.random() / 5
# simulating a training run
for epoch in range(epochs):
acc = 1 - 2**-epoch - random.random() / (epoch + 1) - offset
loss = 2**-epoch + random.random() / (epoch + 1) + offset
print(f"epoch={epoch}, accuracy={acc}, loss={loss}")
run.log({"accuracy": acc, "loss": loss})
これにより、次の出力が返されます。
wandb: Syncing run jolly-haze-4
wandb: ⭐️ View project at https://wandb.ai/nico/awesome-project
wandb: 🚀 View run at https://wandb.ai/nico/awesome-project/runs/pdo5110r
lr: 0.01
epoch=0, accuracy=-0.10070974957523078, loss=1.985328507123956
epoch=1, accuracy=0.2884687745057535, loss=0.7374362314407752
epoch=2, accuracy=0.7347387967382066, loss=0.4402409835486663
epoch=3, accuracy=0.7667969248039795, loss=0.26176963846423457
epoch=4, accuracy=0.7446848791003173, loss=0.24808611724405083
epoch=5, accuracy=0.8035095836268268, loss=0.16169791827329466
epoch=6, accuracy=0.861349032371624, loss=0.03432578493587426
epoch=7, accuracy=0.8794926436276016, loss=0.10331872172219471
epoch=8, accuracy=0.9424839917077272, loss=0.07767793473500445
epoch=9, accuracy=0.9584880427028566, loss=0.10531971149250456
wandb: 🚀 View run jolly-haze-4 at: https://wandb.ai/nico/awesome-project/runs/pdo5110r
wandb: Find logs at: wandb/run-20241105_111816-pdo5110r/logs
トレーニング スクリプト は run.log
を 10 回呼び出します。スクリプト が run.log
を呼び出すたびに、W&B はその エポック の 精度 と 損失 をログします。W&B が前の出力から出力する URL を選択すると、W&B App UI の run の ワークスペース に移動します。
スクリプト が wandb.init
メソッド を 1 回だけ呼び出すため、W&B はシミュレートされたトレーニング ループ を jolly-haze-4
という単一の run 内でキャプチャすることに注意してください。

別の例として、sweep 中に、W&B は指定した ハイパーパラメーター 探索 空間を探索します。W&B は、sweep が作成する新しい ハイパーパラメーター の組み合わせを、一意の run として実装します。
run を初期化する
wandb.init()
を使用して W&B run を初期化します。次のコードスニペットは、W&B Python SDK をインポートして run を初期化する方法を示しています。
山かっこ (< >
) で囲まれた値を、自分の値に置き換えてください。
import wandb
run = wandb.init(entity="<entity>", project="<project>")
run を初期化すると、W&B は プロジェクト フィールド に指定した プロジェクト (wandb.init(project="<project>"
に run をログします。W&B は、 プロジェクト がまだ存在しない場合は、新しい プロジェクト を作成します。プロジェクト がすでに存在する場合は、W&B はその プロジェクト に run を保存します。
Uncategorized
という プロジェクト に保存します。W&B の各 run には、run ID と呼ばれる一意の識別子があります。一意の ID を指定する か、W&B に ID をランダムに生成させる ことができます。
各 run には、人間が読める run 名 としても知られる一意でない識別子もあります。run の名前を指定するか、W&B にランダムに生成させることができます。
たとえば、次のコードスニペットを考えてみましょう。
import wandb
run = wandb.init(entity="wandbee", project="awesome-project")
コードスニペット は、次の出力を生成します。
🚀 View run exalted-darkness-6 at:
https://wandb.ai/nico/awesome-project/runs/pgbn9y21
Find logs at: wandb/run-20241106_090747-pgbn9y21/logs
上記の コード が id パラメータ の 引数 を指定しなかったため、W&B は一意の run ID を作成します。nico
は run をログした エンティティ 、awesome-project
は run がログされる プロジェクト の名前、exalted-darkness-6
は run の名前、pgbn9y21
は run ID です。
Notebook users
run の最後に run.finish()
を指定して、run が完了したことを示します。これにより、run が プロジェクト に適切にログされ、バックグラウンド で継続されないようになります。
import wandb
run = wandb.init(entity="<entity>", project="<project>")
# Training code, logging, and so forth
run.finish()
各 run には、run の現在のステータス を記述する 状態 があります。可能な run の 状態 の完全なリストについては、Run の 状態 を参照してください。
Run の 状態
次のテーブルは、run がとりうる 状態 を記述しています。
状態 | 説明 |
---|---|
Finished | run が終了し、 完全に データ が同期されたか、wandb.finish() が呼び出されました |
Failed | run が 0 以外の終了ステータス で終了しました |
Crashed | run が 内部 プロセス で ハートビート の送信を停止しました。これは、 マシン が クラッシュ した場合に発生する可能性があります |
Running | run はまだ実行中で、最近 ハートビート を送信しました |
一意の run 識別子
Run ID は、run の一意の識別子です。デフォルトでは、新しい run を初期化すると、W&B が ランダム で一意の run ID を生成します。run を初期化するときに、独自の 一意の run ID を指定する こともできます。
自動生成された run ID
run を初期化するときに run ID を指定しない場合、W&B は ランダム な run ID を生成します。run の一意の ID は、W&B App UI で確認できます。
- https://wandb.ai/home の W&B App UI に移動します。
- run の初期化時に指定した W&B プロジェクト に移動します。
- プロジェクト の ワークスペース 内で、[Runs] タブ を選択します。
- [Overview] タブ を選択します。
W&B は、[Run パス] フィールド に一意の run ID を表示します。run パス は、 チーム の名前、 プロジェクト の名前、run ID で構成されます。一意の ID は、run パス の最後の部分です。
たとえば、次の図では、一意の run ID は 9mxi1arc
です。

カスタム run ID
wandb.init
メソッド に id
パラメータ を渡すことで、独自の run ID を指定できます。
import wandb
run = wandb.init(entity="<project>", project="<project>", id="<run-id>")
run の一意の ID を使用して、W&B App UI で run の Overview ページ に直接移動できます。次のセルは、特定の run の URL パス を示しています。
https://wandb.ai/<entity>/<project>/<run-id>
山かっこ (< >
) で囲まれた値は、エンティティ 、 プロジェクト 、run ID の実際の値の プレースホルダー です。
run に名前を付ける
run の名前は、人間が読める一意でない識別子です。
デフォルトでは、W&B は新しい run を初期化するときに ランダム な run 名を生成します。run の名前は、 プロジェクト の ワークスペース 内と、run の Overview ページ の上部に表示されます。
wandb.init
メソッド に name
パラメータ を渡すことで、run の名前を指定できます。
import wandb
run = wandb.init(entity="<project>", project="<project>", name="<run-name>")
run にメモを追加する
特定の run に追加するメモは、[Overview] タブ の run ページ と、 プロジェクト ページ の run のテーブルに表示されます。
- W&B プロジェクト に移動します
- プロジェクト サイドバー から [Workspace] タブ を選択します
- run セレクター からメモを追加する run を選択します
- [Overview] タブ を選択します
- [Description] フィールド の横にある 鉛筆 アイコン を選択し、メモを追加します
run を停止する
W&B App または プログラム で run を停止します。
- run を初期化した ターミナル または コード エディタ に移動します。
Ctrl+D
を押して run を停止します。
たとえば、上記の手順に従うと、 ターミナル は次のようになります。
KeyboardInterrupt
wandb: 🚀 View run legendary-meadow-2 at: https://wandb.ai/nico/history-blaster-4/runs/o8sdbztv
wandb: Synced 5 W&B file(s), 0 media file(s), 0 artifact file(s) and 1 other file(s)
wandb: Find logs at: ./wandb/run-20241106_095857-o8sdbztv/logs
W&B App UI に移動して、run が アクティブ でなくなったことを確認します。
- run がログされている プロジェクト に移動します。
- run の名前を選択します。
legendary-meadow-2
です。[State] フィールド の横で、run の 状態 が running
から Killed
に変わります。

- run がログされている プロジェクト に移動します。
- run セレクター 内で停止する run を選択します。
- プロジェクト サイドバー から [Overview] タブ を選択します。
- [State] フィールド の横にある上部の ボタン を選択します。
[State] フィールド の横で、run の 状態 が running
から Killed
に変わります。

可能な run の 状態 の完全なリストについては、State フィールド を参照してください。
ログに記録された run を表示する
run の 状態、run にログされた Artifacts、run 中に記録された ログ ファイル など、特定の run に関する情報を表示します。

特定の run を表示するには:
-
https://wandb.ai/home の W&B App UI に移動します。
-
run の初期化時に指定した W&B プロジェクト に移動します。
-
プロジェクト サイドバー 内で、[Workspace] タブ を選択します。
-
run セレクター 内で、表示する run をクリックするか、run 名の一部を入力して、一致する run を フィルター します。
デフォルトでは、長い run 名は読みやすくするために中央で切り捨てられます。代わりに、run 名を先頭または末尾で切り捨てるには、run のリストの上部にある アクション
...
メニュー をクリックし、[Run 名のトリミング] を設定して、末尾、中央、または先頭をトリミングします。
特定の run の URL パス には、次の形式があることに注意してください。
https://wandb.ai/<team-name>/<project-name>/runs/<run-id>
山かっこ (< >
) で囲まれた値は、 チーム 名、 プロジェクト 名、run ID の実際の値の プレースホルダー です。
Overviewタブ
[Overview] タブ を使用して、 プロジェクト 内の特定の run 情報について学習します。次に例を示します。
- Author: run を作成する W&B エンティティ 。
- Command: run を初期化する コマンド 。
- Description: 提供した run の説明。run の作成時に説明を指定しない場合、このフィールド は空です。W&B App UI を使用するか、Python SDK で プログラム で説明を run に追加できます。
- Duration: run が アクティブ に計算または データ をログしている時間。一時停止または待機は除きます。
- Git リポジトリ: run に関連付けられている git リポジトリ。git を有効にする して、このフィールド を表示する必要があります。
- Host name: W&B が run を計算する場所。 マシン で ローカル に run を初期化する場合は、 マシン の名前が表示されます。
- Name: run の名前。
- OS: run を初期化する オペレーティング システム 。
- Python 実行可能ファイル: run を開始する コマンド 。
- Python バージョン: run を作成する Python バージョン を指定します。
- Run パス:
entity/project/run-ID
の形式で一意の run 識別子を識別します。 - Runtime: run の開始から終了までの合計時間を測定します。これは、run の ウォール クロック 時間です。Runtime には、run が一時停止している時間または リソース を待機している時間が含まれますが、Duration は含まれません。
- Start time: run を初期化する タイムスタンプ 。
- State: run の 状態。
- System hardware: W&B が run の計算に使用する ハードウェア 。
- Tags: 文字列のリスト。タグ は、関連する run をまとめて編成したり、
baseline
やproduction
などの一時的なラベル を適用したりするのに役立ちます。 - W&B CLI バージョン: run コマンド を ホスト した マシン にインストールされている W&B CLI バージョン 。
W&B は、概要セクション の下に次の情報を保存します。
- Artifact Outputs: run によって生成された Artifacts 出力。
- Config:
wandb.config
で保存された config パラメータ のリスト。 - Summary:
wandb.log()
で保存された summary パラメータ のリスト。デフォルトでは、W&B はこの値を最後にログされた値に設定します。

プロジェクト の概要の例はこちらをご覧ください。
Workspaceタブ
[Workspace] タブ を使用して、自動生成された カスタム プロット 、 システム メトリクス など、 可視化 を表示、検索、 グループ化 、および配置します。

プロジェクト ワークスペース の例はこちらをご覧ください
Runsタブ
[Runs] タブ を使用して、run を フィルター 、 グループ化 、および並べ替えます。

次のタブ は、[Runs] タブ で実行できる一般的な アクション の一部を示しています。
[Runs] タブ には、 プロジェクト 内の run に関する詳細が表示されます。デフォルトでは、多数の 列 が表示されます。
- 表示されているすべての 列 を表示するには、 ページ を水平方向に スクロール します。
- 列 の順序を変更するには、 列 を左または右に ドラッグ します。
- 列 を ピン留め するには、 列 名の上に カーソル を置き、表示される アクション メニュー
...
をクリックし、[Pin column] をクリックします。ピン留め された 列 は、[Name] 列 の後、 ページ の左側の近くに表示されます。ピン留め された 列 の ピン留め を解除するには、[Unpin column] を選択します - 列 を非表示にするには、 列 名の上に カーソル を置き、表示される アクション メニュー
...
をクリックし、[Hide column] をクリックします。現在非表示になっているすべての 列 を表示するには、[Columns] をクリックします。 - 複数の 列 を一度に表示、非表示、 ピン留め 、および ピン留め 解除するには、[Columns] をクリックします。
- 非表示の 列 の名前をクリックして、非表示を解除します。
- 表示されている 列 の名前をクリックして、非表示にします。
- 表示されている 列 の横にある ピン アイコン をクリックして ピン留め します。
[Runs] タブ を カスタマイズ すると、 カスタマイズ はWorkspace タブ の [Runs] セレクター にも反映されます。
指定された 列 の値で テーブル 内のすべての行を並べ替えます。
- マウス を 列 タイトル の上に移動します。ケバブ メニュー (3 つの垂直 ドット) が表示されます。
- ケバブ メニュー (3 つの垂直 ドット) を選択します。
- [Sort Asc] または [Sort Desc] を選択して、行をそれぞれ 昇順 または 降順 に並べ替えます。

上の図は、val_acc
という名前の テーブル 列 の並べ替え オプション を表示する方法を示しています。
ダッシュボード の上にある [Filter] ボタン を使用して、 式 で すべての行を フィルター します。

[Add filter] を選択して、1 つまたは複数の フィルター を行に追加します。3 つの ドロップダウン メニュー が表示されます。左から右への フィルター タイプ は、 列 名、 オペレーター 、および値に基づいています
列 名 | 二項関係 | 値 | |
---|---|---|---|
受け入れられる値 | 文字列 | =, ≠, ≤, ≥, IN, NOT IN, | 整数, float, 文字列, タイムスタンプ , null |
式 エディター には、 列 名のオートコンプリート と論理述語構造を使用して、各 項 の オプション のリストが表示されます。「and」または「or」(および場合によっては 括弧 ) を使用して、複数の論理述語を 1 つの 式 に接続できます。

ダッシュボード の上にある [Group by] ボタン を使用して、特定の 列 の値で行を グループ化 します。

デフォルトでは、これにより、他の数値 列 が、その グループ 全体の 列 の値の分布を示す ヒストグラム に変わります。グループ化 は、 データ のより高レベルの パターン を理解するのに役立ちます。
Systemタブ
[System タブ] には、CPU 使用率、 システム メモリ 、 ディスク I/O、 ネットワーク トラフィック、GPU 使用率など、特定の run に対して追跡される システム メトリクス が表示されます。
W&B が追跡する システム メトリクス の完全なリストについては、System メトリクス を参照してください。

システム タブ の例はこちらをご覧ください。
Logsタブ
[Log タブ] には、 コマンドライン に出力された出力 (標準出力 (stdout
) や 標準 エラー (stderr
) など) が表示されます。
右上隅にある [Download] ボタン を選択して、 ログ ファイル をダウンロードします。

ログ タブ の例はこちらをご覧ください。
Filesタブ
[Files タブ] を使用して、モデル チェックポイント 、 検証 セット の例など、特定の run に関連付けられた ファイル を表示します

ファイル タブ の例はこちらをご覧ください。
Artifactsタブ
[Artifacts] タブ には、指定された run の 入力 および 出力 アーティファクト が一覧表示されます。

アーティファクト タブ の例はこちらをご覧ください。
run を削除する
W&B App を使用して、 プロジェクト から 1 つまたは複数の run を削除します。
- 削除する run が含まれている プロジェクト に移動します。
- プロジェクト サイドバー から [Runs] タブ を選択します。
- 削除する run の横にある チェックボックス をオンにします。
- テーブル の上にある [Delete] ボタン ( ゴミ箱 アイコン ) を選択します。
- 表示される モーダル から、[Delete] を選択します。
run を整理する
このセクション では、 グループ と ジョブタイプ を使用して run を整理する方法について説明します。run を グループ (たとえば、 実験 名) に割り当て、 ジョブタイプ (たとえば、 前処理 、 トレーニング 、 評価 、 デバッグ ) を指定することで、 ワークフロー を効率化し、モデル の比較を改善できます。
run に グループ または ジョブタイプ を割り当てる
W&B の各 run は、[グループ] と [ジョブタイプ] で 分類 できます。
- グループ: 実験 の広範な カテゴリ で、run の整理と フィルター に使用されます。
- ジョブタイプ:
preprocessing
、training
、evaluation
など、run の 機能 。
次のワークスペース の例 では、Fashion-MNIST データセット から 増え続ける量の データ を使用して ベースライン モデル を トレーニング します。ワークスペース では、使用される データ 量を色で表します。
- 黄色から濃い緑は、 ベースライン モデル の データ 量が増加していることを示します。
- 水色からバイオレット、マゼンタは、追加の パラメータ を持つ、より複雑な「double」モデルの データ 量を示します。
W&B の フィルター オプション と検索バーを使用して、特定の条件に基づいて run を比較します。次に例を示します。
- 同じ データセット での トレーニング 。
- 同じ テストセット での 評価 。
フィルター を適用すると、[Table] ビュー が自動的に更新されます。これにより、モデル 間の パフォーマンス の違いを特定できます。たとえば、一方のモデル で他方のモデル よりも大幅に困難な クラス を特定できます。