Skip to main content
トレーニングの設定を保存するには、run の config プロパティを使用します。保存できる設定には次のようなものがあります。
  • ハイパーパラメーター
  • データセット名やモデルのタイプなどの入力設定
  • 実験におけるその他の独立変数
wandb.Run.config プロパティを使用すると、実験を簡単に分析でき、後から作業を再現することも容易になります。W&B アプリ では、設定値でグループ化したり、異なる W&B run の設定を比較したり、各トレーニング設定が出力に与える影響を評価したりできます。config プロパティは辞書のようなオブジェクトで、複数の辞書のようなオブジェクトを組み合わせて構成できます。
損失や精度などの出力メトリクスや従属変数を保存する場合は、wandb.Run.config ではなく wandb.Run.log() を使用してください。

実験の設定を行う

設定は通常、トレーニングスクリプトの冒頭で定義します。ただし、機械学習のワークフローはさまざまであるため、必ずしもトレーニングスクリプトの冒頭で設定を定義する必要はありません。 設定の変数名には、ピリオド (.) ではなくダッシュ (-) またはアンダースコア (_) を使用してください。 スクリプトで wandb.Run.config のルートより下の階層にあるキーにアクセスする場合は、属性アクセス構文 config.key.value ではなく、辞書アクセス構文 ["key"]["value"] を使用してください。 以下のセクションでは、実験の設定を定義する際によくあるシナリオをいくつか紹介します。

初期化時に設定を指定する

スクリプトの冒頭で wandb.init() API を呼び出す際に辞書を渡します。この呼び出しにより、データを同期して W&B の run としてログするバックグラウンドプロセスが生成されます。 次のコードスニペットでは、設定値を含む Python の辞書を定義し、W&B の run を初期化する際にその辞書を引数として渡す方法を示します。
ネストされた辞書を config として渡すと、W&B はドットを使って名前をフラット化します。 辞書の値には、Python の他の辞書と同じ方法でアクセスできます。
Developer Guide とサンプルでは、設定値を個別の変数にコピーしています。これは読みやすさを考慮したもので、このステップは省略できます。

argparse で設定を行う

argparse オブジェクトを使用して設定を行うことができます。argparse は argument parser (引数パーサー) の略で、Python 3.2 以降に含まれる標準ライブラリモジュールです。argparse を使用すると、コマンドライン引数の柔軟性と機能を最大限に活かしたスクリプトを簡単に記述できます。 これは、コマンドラインから起動するスクリプトの結果をトラッキングする場合に便利です。 次の Python スクリプトは、パーサーオブジェクトを定義し、それを使って実験の設定を定義・設定する方法を示しています。関数 train_one_epoch と evaluate_one_epoch は、このデモ用にトレーニングループをシミュレートするためのものです。

スクリプト内の任意の場所で設定する

スクリプト内の任意の場所で、設定オブジェクトにパラメーターを追加できます。 次のコードスニペットは、既存の設定オブジェクトに新しいキーと値のペアを追加する方法を示しています。
複数の値を一度に追加することもできます。次のコードスニペットは、既存の設定オブジェクトで複数のキーと値のペアを更新する方法を示しています。
既存のキーの値を更新する場合は、必ず allow_val_change=True を設定してください。このパラメーターを設定せずに既存のキーの値を更新しようとすると、W&B はエラーを返します。

run の終了後に設定する

完了した run の設定を更新するには、W&B Public API を使用します。 API には、entity、プロジェクト名、run の ID を指定する必要があります。これらの情報は、Run オブジェクトまたは W&B アプリ で確認できます:

設定値をハイライトする

設定キーを、run の概要ページ上部にある References セクションにピン留めできます。 Python SDK で 1 つ以上の設定キーをピン留めするには、wandb.Run.pin_config_keys を使用します。 たとえば、Grafana ダッシュボードでトレーニング run を監視している場合は、ダッシュボードの URL を設定に追加し、grafana_url キーをピン留めします。

設定値を表示する

設定値には、W&B アプリ、run の実行中、または既存の run からアクセスできます。ローカルのファイルシステムから設定値にアクセスすることもできます。
W&B アプリで run の設定を表示するには、次の手順を実行します。
  1. W&B アプリで対象の project にアクセスします。
  2. 表示する run を選択します。
  3. Overview タブを選択します。
  4. Config セクションまでスクロールします。
  5. オプション: View raw data をクリックすると、設定を JSON 形式で表示できます。
生の JSON 形式は、設定値、ログしたメトリクス、またはサマリー値をもとに折れ線グラフを作成・変換する式を記述する際に役立ちます。詳細については、式 を参照してください。

ファイルベースの設定

run スクリプトと同じディレクトリに config-defaults.yaml という名前のファイルを配置すると、run はそのファイルに定義されたキーと値のペアを自動的に読み込み、wandb.Run.config に渡します。 次のコードスニペットは、config-defaults.yaml ファイルの例です。
config-defaults.yaml から自動的に読み込まれるデフォルト値は、wandb.init() の config 引数で新しい値を指定することで上書きできます。例:
config-defaults.yaml 以外の設定ファイルを読み込むには、--configs command-line 引数を使用して、ファイルのパスを指定します。

設定内のネストされた辞書

run 設定にネストされた値を保存するには、ネストされた辞書を wandb.init() に渡します。次の例では、config 内にネストされた optimizer 辞書と training 辞書を定義しています。
各トップレベルキーには value フィールドが必要です。ネストされた辞書を value に割り当てます。
Python では、辞書のインデックス指定を使用してネストされた値にアクセスします。 次の例では、run 設定内のネストされたオプティマイザー辞書から learning_rate の値を取得します:
Public API のフィルターや折れ線グラフの式など、設定値をパスで参照する場面では、ドット記法を使用します。たとえば、Public API のフィルターでは config.optimizer.learning_rate、折れ線グラフの式では ${config:optimizer.learning_rate} と指定します。 次の例では、ネストされた設定を持つ run を作成し、トレーニングのエポックごとに損失をログします。続いて、Public API を使用して学習率が 1e-4 の run を検索し、各 run の名前と学習率を出力します。
実際の運用では、run の作成と、後でフィルターを使ってそれらをクエリする処理には、通常それぞれ別のスクリプトを使用します。

ファイルベースの設定のユースケース例

run のメタデータを記述した YAML ファイルと、Python スクリプト内で定義したハイパーパラメーターの辞書があるとします。この両方を、ネストされた config オブジェクトに保存できます。

TensorFlow v1 のフラグ

TensorFlow のフラグは、wandb.Run.config オブジェクトに直接渡せます。
最終更新日 2026年9月30日