ユーザーによるW&Bのインストール方法を決める
wandb) をどのようにimportするか、インストール方法をどのようにドキュメント化するか、また wandb が存在しない環境をどのように処理するかに影響します。
W&B を依存関係として必須にする
wandb を追加します。
インストール時に W&B をオプションにする
wandb を条件付きで import するか、pyproject.toml でオプションの依存関係として宣言できます。
- Python
- pyproject.toml
wandb が利用可能かどうかを確認し、インストールしていない状態でユーザーが W&B の機能を有効にした場合は、明確なエラーを出します。ユーザー認証
wandb クライアントで使用できるようにしておく必要があります。
APIキーを発行する
より手早く行うには、User Settings にアクセスしてAPIキーを作成してください。APIキーはすぐにコピーし、パスワードマネージャーなどの安全な場所に保存してください。
- 右上にあるユーザープロフィールアイコンをクリックします。
- User Settings を選択し、API Keys セクションまでスクロールします。
W&B をインストールしてログインする
wandb ライブラリをローカルにインストールしてログインし、以降の Runs が W&B に対して認証できるようにします。ご利用の環境に合ったタブを選択してください。
- コマンドライン
- Python
- Python notebook
-
WANDB_API_KEYの環境変数に APIキー を設定します。<>で囲まれた値はご自身の値に置き換えてください。 -
wandbライブラリをインストールしてログインします。
run を開始する
wandb.init() で run を初期化し、プロジェクト名とチーム entity (チーム名) を指定します。プロジェクトを指定しない場合、W&B は run を “uncategorized” というデフォルトのプロジェクトに保存します。<> で囲まれた値は、ご自身の値に置き換えてください。
run.finish() を呼び出して run を終了し、すべてのデータを W&B にログする必要があります。run を終了すると、プロセスが終了する前に、すべてのメトリクス、設定、アーティファクトがアップロードされることが保証されます。
wandb をオプションの依存関係にする
wandb をオプションにして、ユーザーが W&B runs を生成せずにライブラリを実行できるようにしたい場合は、次のいずれかの方法を使用できます。
wandbフラグを定義します。wandb.init()でwandbをdisabledに設定します。wandbをオフラインに設定します。なお、この場合もwandb自体は実行されますが、インターネット経由で W&B と通信しません。
wandb フラグを定義します。
- Python
- Bash
wandb.init() で wandb を disabled に設定します。
- Python
- Bash
wandb をオフラインに設定します。
- 環境変数
- Bash
run 設定 を定義する
batch_size) が設定パラメーターとして定義されており、Runs table に表示されています (最初の列を参照) 。これにより、ユーザーはバッチサイズに基づいて run をフィルターし、比較できます。

- モデル名、バージョン、アーキテクチャーパラメーター、ハイパーパラメーター。
- データセット名、バージョン、トレーニングまたは検証のサンプル数。
- 学習率、バッチサイズ、オプティマイザーなどのトレーニングパラメーター。
run 設定 を更新する
wandb.init() を呼び出す時点ではまだわからないことがあります。初期化時に値を利用できない場合は、後から wandb.Run.config.update を使って設定を更新します。たとえば、モデルをインスタンス化した後で、そのパラメーターを追加したいことがあります。
メトリクスとデータをログする
メトリクスをログする
wandb.Run.log() に渡して、W&B にログします。
train/ や検証用メトリクスの val/ などがありますが、ユースケースに応じて任意の接頭辞を使用できます。
これにより、project のWorkspaceに、トレーニング用メトリクスと検証用メトリクス、または分けて表示したい他のタイプのメトリクスごとに、個別のセクションが作成されます:

wandb.Run.log() を参照してください。
x-axis を制御する
wandb.Run.log() を複数回呼び出すと、wandb SDK は wandb.Run.log() を呼び出すたびに内部の step カウンタをインクリメントします。このカウンタは、トレーニング ループ内のトレーニング step と一致しないことがあります。
これを避けるには、wandb.init() を呼び出した直後に、wandb.Run.define_metric() を使って x-axis の step を一度だけ明示的に定義します:
* は、すべてのメトリクスでグラフの x 軸に global_step が使用されることを意味します。global_step に対してログするメトリクスを特定のものだけにしたい場合は、代わりにそれらを指定できます。
wandb.Run.log() を呼び出すたびに、メトリクス、step メトリクス、および global_step をログしてください:
global_step を使用できないときは、以前にログした global_step の値が W&B によって自動的に使用されます。この場合は、必要になったときに定義済みになっているよう、あらかじめメトリクスの初期値をログしておいてください。
メディアと構造化データをログする
- メトリクスはどのくらいの頻度でログするべきですか。任意にするべきですか。
- 可視化に役立つのは、どのようなタイプのデータですか。
- 画像については、サンプル予測やセグメンテーションマスクをログすることで、時間の経過に伴う変化を確認できます。
- テキストについては、後で詳しく調べられるように、サンプル予測の表をログできます。
分散トレーニングをサポートする
- メインプロセスからのみログする (推奨) 。
- すべてのプロセスからログし、共有の
group名でrunをグループ化する。
アーティファクト でモデルとデータセットをトラッキングする

- モデル チェックポイントまたはデータセットを アーティファクト としてログするかどうか (オプションにする場合) 。
- Artifact の入力参照 (たとえば、
entity/project/artifact) 。 - モデル チェックポイントまたはデータセットをログする頻度。たとえば、各エポックまたは 500 step ごとです。
モデル チェックポイントをログする
入力アーティファクトをログする
wandb.Run.use_artifact() の呼び出しによって、その アーティファクト を現在の run に関連付けます。これにより、W&B はその run で使用されたデータセットのリネージをトラッキングできます。
アーティファクト をダウンロードする
wandb.Run.use_artifact() を使用してW&B内のアーティファクトを参照し、その後 wandb.Artifact.download() を呼び出してローカルディレクトリにダウンロードします。wandb.Run.use_artifact() を使用すると、artifact は現在のrunへの入力としても記録され、リネージが保持されます。