クラス wandb.Run
W&B でログされる計算の単位です。通常は ML の実験です。 新しい run を作成するには、wandb.init() を呼び出します。wandb.init() は新しい run を開始し、wandb.Run オブジェクトを返します。各 run には一意の ID (run ID) が関連付けられます。W&B では、コンテキストマネージャー (with 文) を使用して run を自動的に終了することを推奨しています。
分散トレーニング実験では、プロセスごとに 1 つの run を使って各プロセスを個別にトラッキングすることも、すべてのプロセスを 1 つの run でトラッキングすることもできます。詳細は Log distributed training experiments を参照してください。
wandb.Run.log() を使って run にデータをログできます。wandb.Run.log() を使用してログしたものはすべて、その run に送信されます。詳細は Create an experiment または wandb.init API リファレンスページを参照してください。
wandb.apis.public 名前空間には、別の Run オブジェクトがあります。このオブジェクトは、すでに作成されている Runs を操作するために使用します。
属性
summary: (Summary) run のサマリーであり、辞書のようなオブジェクトです。詳細は Log summary metrics を参照してください。
例
wandb.init() で run を作成します:
プロパティ
wandb_config.Config
この run に関連付けられた Config オブジェクト。
wandb_config.ConfigStatic
この run に関連付けられた静的な設定オブジェクト。
str
run の file が保存されるディレクトリ。これは、
run.save() で保存された file (run.log() に渡された特定のデータタイプに対して
自動作成される file を含む) を指します。run のすべてのデータを含む
ディレクトリについては、run.sync_dir を参照してください。bool
run が無効な場合は True、それ以外の場合は False。
str
run に関連付けられた W&B entity の名。entity には、ユーザー名、チーム名、または組織名を指定できます。
str
この run に関連付けられた group の名を返します。run をグループ化すると、関連する experiment を整理し、
W&B UI でまとめて可視化できます。これは、分散トレーニングや交差検証など、
複数の run を 1 つの experiment として表示・管理する必要がある
シナリオで特に役立ちます。すべてのプロセスが同じ Run オブジェクトを共有する共有モードでは、
run は 1 つしかなくグループ化も不要なため、通常は group を設定する必要は
ありません。
str
この run の識別子。
str
run に関連付けられたジョブタイプの名。W&B App の run の Overview ページで、run のジョブタイプを確認できます。これを使用して、“training”、“evaluation”、“inference” などの
ジョブタイプ別に run を分類できます。これは、W&B UI で run を整理・
フィルタリングする際、特に同じ project 内に異なるジョブタイプの複数の
run がある場合に役立ちます。詳細については、
Organize runs を参照してください。
str | None
run の表示名。表示名は一意であるとは限らず、任意の説明的な名を設定できます。
デフォルトでは、ランダムに生成されます。
str | None
run に関連付けられたメモ (ある場合) 。メモには複数行の string を指定でき、
$$ 内では $x + 3$ のような
Markdown や LaTeX の数式も使用できます。bool
run がオフラインの場合は True、それ以外の場合は False。
str
run へのパス。run パスには entity、project、run ID が含まれ、形式は
entity/project/run_id です。str
run に関連付けられた W&B のプロジェクトの名。
str | None
run に関連付けられた W&B のプロジェクトの URL (ある場合) 。オフライン run には project URL がありません。
bool
run が再開された場合は True、それ以外の場合は False。
Settings
run の Settings オブジェクトの凍結されたコピー。
float
run が開始された時刻の Unix Timestamp (秒) 。
int
次の
log() 呼び出しの W&B step。mode=“shared” の run ではエラーが発生します。str | None
run に関連付けられた sweep の識別子 (ある場合) 。
str | None
run に関連付けられた sweep の URL (ある場合) 。オフライン run には sweep URL がありません。
str
run のすべてのデータを含むディレクトリ。これを
wandb sync に渡すと、run をアップロードまたは再アップロードできます。tuple | None
run に関連付けられたタグ (ある場合) 。
str | None
W&B run の URL (ある場合) 。オフライン run には URL がありません。
メソッド
method Run.alert()
引数
str
アラートのタイトル。64 文字未満である必要があります。
str
アラートの本文。
str | AlertLevel | None
使用するアラートレベル。
INFO、WARN、ERROR のいずれかです。int | float | timedelta | None
同じタイトルの次のアラートを送信するまでの待機時間 (秒) 。
method Run.define_metric()
wandb.Run.log() でログするメトリクスをカスタマイズします。
引数
str
カスタマイズするメトリクスの名。
str | wandb_metric.Metric | None
自動生成されるチャートで、このメトリクスの X 軸として使用する別のメトリクスの名。
bool | None
明示的に指定されていない場合、step_metric の最後の値を
wandb.Run.log() に自動的に挿入します。step_metric が指定されている場合、デフォルトは True です。このメトリクスを自動プロットから非表示にします。
str | None
summary に追加する集約メトリクスを指定します。サポートされる集約には、“min”、“max”、“mean”、“last”、“first”、“copy”、“none” があります。“none” を指定すると summary は生成されません。“copy” は非推奨のため、使用しないでください。
bool | None
false の場合、未指定のパラメーターには以前の値が使用され、この呼び出しは同じメトリクスに対する以前の
define_metric 呼び出しとマージされます。true の場合、未指定のパラメーターによって以前の呼び出しで指定された値が上書きされます。method Run.display()
引数
int
説明は提供されていません。
説明は提供されていません。
method Run.finish()
- Running: データをログし、かつ/またはハートビートを送信しているアクティブな run。
- Crashed: ハートビートの送信が予期せず止まった run。
- Finished: すべてのデータが Sync され、正常に完了した run (
exit_code=0) 。 - Failed: エラーにより完了した run (
exit_code!=0) 。 - Killed: 完了前に強制的に停止された run。
引数
int | None
run の終了ステータスを示す整数です。成功時は 0 を使用し、それ以外の値を指定すると run は失敗として扱われます。
method Run.finish_artifact()
引数
Artifact | str
この アーティファクト の内容へのパス。指定できる形式は次のとおりです:
/local/directory/local/directory/file.txts3://bucket/pathwandb.Artifactを呼び出して作成した Artifact オブジェクトを渡すこともできます。
str | None
アーティファクト 名。entity/プロジェクト を接頭辞として付けることもできます。
有効な名前の形式は次のとおりです:
- name:version
- name:alias
- digest 指定しない場合、現在の run id を先頭に付けたパスの basename がデフォルトになります。
str | None
ログする アーティファクト のタイプ。例:
dataset, modellist[str] | None
この アーティファクト に適用するエイリアス。デフォルトは
["latest"] ですstr | None
すべての分散ジョブで共有される一意の文字列。None の場合は、run の group 名がデフォルトになります。
method Run.link_artifact()
引数
Artifact
コレクションにリンクするアーティファクト オブジェクト。
str
コレクションのパスです。パスは、プレフィックス “wandb-registry-”、レジストリ名、およびコレクション名
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME} で構成されます。list[str] | None
リンクしたアーティファクトに 1 つ以上のエイリアスを追加します。“latest” エイリアスは、リンクした最新のアーティファクトに自動的に適用されます。
例
method Run.link_model()
- モデルアーティファクト ‘name’ がすでにログされているかどうかを確認します。ログされている場合は、‘path’ にあるファイルに一致するアーティファクトバージョンを使用するか、新しいバージョンをログします。ログされていない場合は、‘path’ 配下のファイルを、タイプ ‘model’ の新しいモデルアーティファクト ‘name’ としてログします。
- ‘model-registry’ プロジェクトに、‘registered_model_name’ という名の登録済みモデルが存在するかどうかを確認します。存在しない場合は、‘registered_model_name’ という名の新しい登録済みモデルを作成します。
- モデルアーティファクト ‘name’ のバージョンを、登録済みモデル ‘registered_model_name’ にリンクします。
- ‘aliases’ リストのエイリアスを、新たにリンクされたモデルアーティファクトバージョンに付与します。
引数
StrPath
(str) このモデルの内容へのパスです。次の形式を指定できます:
/local/directory/local/directory/file.txts3://bucket/path
str
モデルのリンク先となる登録済みモデルの名前です。登録済みモデルは、モデルレジストリにリンクされたモデルバージョンのコレクションで、通常はチーム固有の ML タスクを表します。この登録済みモデルが属する entity は run から導出されます。
str | None
‘path’ 内のファイルのログ先となるモデルアーティファクトの名前です。指定しない場合は、パスの basename の先頭に current run id を付けたものがデフォルトで使用されます。
list[str] | None
登録済みモデル内で、このリンクされたアーティファクトにのみ適用されるエイリアスです。エイリアス “latest” は、リンクされたアーティファクトの最新バージョンに常に適用されます。
送出される例外
AssertionError: registered_model_name がパスである場合、またはモデルアーティファクト ‘name’ のタイプに部分文字列 ‘model’ が含まれていない場合。ValueError: name に無効な特殊文字が含まれている場合。
method Run.log()
log を使用します。コードスニペット、ベストプラクティスなどについては、オブジェクトとメディアをログするを参照してください。
基本的な使用方法:
wandb.Table を使用して構造化データをログできます。詳しくは、Log tables, visualize and query data チュートリアルを参照してください。
W&B は、名にスラッシュ (/) を含むメトリクスを、最後のスラッシュより前のテキストを名前とするセクションに整理します。たとえば、次のようにすると、“train” と “validate” という 2 つのセクションが作成されます。
run.log({"a/b/c": 1}) を実行すると、“a” という名前のセクションが作成されます。
run.log() は、1 秒間に数回を超えて呼び出す用途を想定していません。最適なパフォーマンスを得るには、N 回の反復ごとに 1 回だけログするか、複数回の反復でデータを収集して 1 つの step としてまとめてログしてください。
デフォルトでは、log を呼び出すたびに新しい “step” が作成されます。step は常に増加している必要があり、前の step にログすることはできません。チャートの X 軸には任意のメトリクスを使用できます。詳しくは Custom log axes を参照してください。
多くの場合、W&B の step は、トレーニング step というよりもタイムスタンプのように扱うほうが適切です。
step および commit パラメーターを使用すると、複数の wandb.Run.log() 呼び出しで同じ step にログできます。
以下はすべて同じ意味です。
引数
dict[str, Any]
str キーと、int、float、string、任意の wandb.data_types、シリアライズ可能な Python オブジェクトのリスト、タプル、NumPy 配列、および同じ構造の他の dict を含む、シリアライズ可能な Python オブジェクトの値を持つ dict です。int | None
ログする step 番号です。
None の場合は、暗黙的に自動インクリメントされる step が使用されます。説明内のメモを参照してください。bool | None
true の場合は、step を確定してアップロードします。false の場合は、その step のデータを蓄積します。説明内のメモを参照してください。
step が None の場合、デフォルトは commit=True です。それ以外の場合、デフォルトは commit=False です。送出される例外
wandb.Error:wandb.init()より前に呼び出した場合。ValueError: 無効なデータが渡された場合。
例
method Run.log_artifact()
引数
Artifact | StrPath
(str または Artifact) この アーティファクト の内容へのパス。
指定できる形式は次のとおりです:
/local/directory/local/directory/file.txts3://bucket/pathwandb.Artifactを呼び出して作成した Artifact オブジェクトを渡すこともできます。
str | None
(str, 任意) アーティファクト 名。指定できる名前の形式は次のとおりです:
- name:version
- name:alias
- digest 指定しない場合は、現在の run ID を先頭に付けたパスの basename がデフォルトになります。
str | None
(str) ログする アーティファクト のタイプ。
dataset、model などがありますlist[str] | None
(list, 任意) この アーティファクト に適用するエイリアス。デフォルトは
["latest"] ですlist[str] | None
(list, 任意) この アーティファクト に適用するタグ (存在する場合) 。
method Run.log_code()
.py で終わるすべてのファイルをログします。
引数
str | None
コードを再帰的に検索する起点となる、
os.getcwd() からの相対パスまたは絶対パス。str | None
(str, optional) コード アーティファクト の名。デフォルトでは、アーティファクト 名は
source-$PROJECT_ID-$ENTRYPOINT_RELPATH になります。複数の run で同じ アーティファクト を共有したい場合があります。name を指定すると、それが可能になります。Callable[[str, str], bool] | Callable[[str], bool]
ファイルパスと (必要に応じて) ルートパスを受け取り、含める場合は True、そうでない場合は False を返す callable。デフォルトは
lambda path, root: path.endswith(".py") です。Callable[[str, str], bool] | Callable[[str], bool]
ファイルパスと (必要に応じて) ルートパスを受け取り、除外する場合は
True、そうでない場合は False を返す callable。デフォルトでは、<root>/.wandb/ および <root>/wandb/ ディレクトリ内のすべてのファイルを除外する関数です。例
メソッド Run.log_model()
path 内の内容を含むモデルアーティファクトを run にログし、この run の出力としてマークします。
モデルアーティファクトの名前に使用できるのは、英数字、アンダースコア、ハイフンのみです。
引数
StrPath
(str) このモデルの内容へのパスです。
次の形式を使用できます:
/local/directory/local/directory/file.txts3://bucket/path
str | None
ファイルの内容を追加するモデルアーティファクトに割り当てる名前です。指定しない場合は、path の basename の先頭に現在の run ID を付けたものがデフォルトになります。
list[str] | None
作成されたモデルアーティファクトに適用するエイリアスです。デフォルトは
["latest"] です送出される例外
ValueError: name に無効な特殊文字が含まれている場合。
メソッド Run.mark_preempting()
メソッド Run.pin_config_keys()
引数
Sequence[str]
ピン留めする設定キー名です。
run.config で設定したキーと一致している必要があります。これらは完全一致のキー文字列で、ドットやスラッシュはパス区切り文字ではなく、文字どおりに扱われます。順序は保持され、その順序が表示順になります。メソッド Run.restore()
引数
str
ファイルの名。
str | None
ファイルの取得元となる run へのオプションのパス。例:
username/project_name/run_id。wandb.init が呼び出されていない場合は必須です。bool
ローカルにすでに存在する場合でもファイルをダウンロードするかどうか
str | None
ファイルのダウンロード先ディレクトリ。デフォルトでは現在のディレクトリ、または
wandb.init が呼び出されている場合は run ディレクトリです。送出される例外
CommError: W&B が W&B バックエンドに接続できない場合。ValueError: ファイルが見つからない場合、または run_path が見つからない場合。
メソッド Run.save()
policy に関係なく、save が
呼び出された時点で展開されます。特に、新しいファイルが自動的に自動反映されることはありません。
glob_str は Python の glob モジュールを使用して展開されます。正確な構文と
動作については、
https://docs.python.org/3/library/glob.html を参照してください。
特に、文字 *、?、[] は、実際のファイル名
(例: “myfile[1].txt”) に含まれている場合でも、リテラル文字ではなく
glob のメタ文字として扱われます。ファイル名にこれらの文字が
含まれていて、パターンではなく文字どおりに一致させたい
場合は、save を呼び出す前に glob.escape() で自分で
エスケープするか、glob=False を渡してパターン展開を
完全に無効にし、glob_str をリテラルパスとして扱ってください。
アップロードされるファイルのディレクトリ構造を制御するために、base_path を指定できます。これは glob_str のプレフィックスである必要があり、その配下のディレクトリ構造は保持されます。
絶対パスまたは glob が指定され、base_path がない場合は、上記の例のように 1 階層分のディレクトリが保持されます。
ファイルは自動的に重複排除されます。同じファイルを変更せずに save() を複数回
呼び出しても、再アップロードされません。
引数
str | os.PathLike
相対パス、絶対パス、または Unix glob。
str | os.PathLike | None
ディレクトリ構造の推定に使用するパス。例を参照してください。
PolicyName
live、now、end のいずれかです。- live: ファイルが変更されるたびにアップロードし、前のバージョンを上書きします
- now: 今すぐ 1 回だけファイルをアップロードします
- end: run の終了時にファイルをアップロードします
bool
glob_str を glob パターンとして扱うかどうか。後方互換性のため、デフォルトでは True です。glob_str の名前に [、]、*、? などの glob メタ文字が含まれており、それらをパターンとして解釈したくない場合は、False に設定して glob_str をリテラルパスとして扱います。メソッド Run.status()
メソッド Run.unwatch()
引数
torch.nn.Module | Sequence[torch.nn.Module] | None
watch が呼び出されている pytorch モデルの任意のリスト。
メソッド Run.upsert_artifact()
run.finish_artifact() を呼び出す必要があることに注意してください。
これは、分散ジョブのすべてが同じ アーティファクト に書き込む必要がある場合に便利です。
引数
Artifact | str
この アーティファクト の内容へのパス。次の形式を指定できます。
/local/directory/local/directory/file.txts3://bucket/path
str | None
アーティファクト 名。
entity/プロジェクト を接頭辞として付けることができます。指定しない場合、パスの basename の先頭に現在の run ID を付けたものがデフォルトになります。有効な名は次の形式です。- name:version
- name:alias
- digest
str | None
ログする アーティファクト のタイプ。一般的な例としては
dataset、model があります。list[str] | None
この アーティファクト に適用するエイリアス。デフォルトは
["latest"] です。str | None
すべての分散ジョブで共有する一意の文字列です。None の場合、run のグループ名がデフォルトになります。
メソッド Run.use_artifact()
download または file を呼び出すと、内容をローカルに取得できます。
引数
str | Artifact
使用する アーティファクト の名前。アーティファクト がログされたプロジェクト名
(“entity” または “entity/project”) を接頭辞として付けることもできます。名前に
entity が指定されていない場合は、Run または API 設定の entity が使用されます。
有効な名前は次の形式です
- name:version
- name:alias
str | None
使用する アーティファクト のタイプ。
list[str] | None
この アーティファクト に適用するエイリアス。
str | None
この引数は非推奨で、何も行いません。
例
メソッド Run.use_model()
name にログされたファイルをダウンロードします。
引数
str
モデル アーティファクト の名です。‘name’ は、既存のログ済み
モデル アーティファクト の名と一致している必要があります。
entity/プロジェクト/ をプレフィックスとして付けることもできます。有効な名は
次の形式です- model_artifact_name:version
- model_artifact_name:alias
送出される例外
AssertionError: モデル アーティファクトnameのタイプに部分文字列modelが含まれていない場合。
メソッド Run.watch()
引数
torch.nn.Module | Sequence[torch.nn.Module]
モニターする単一のモデル、またはモデルのシーケンスです。
torch.F | None
最適化対象の損失関数 (任意) 。
Literal['gradients', 'parameters', 'all'] | None
ログする対象として “gradients”、“parameters”、または “all” を指定します。ログを無効にするには None に設定します。 (デフォルト=“gradients”)
int
勾配とパラメーターをログする頻度 (バッチ単位) 。 (デフォルト=1000)
int | None
wandb.watch で複数のモデルをトラッキングする際に使用するインデックス。 (デフォルト=None)bool
モデルの計算グラフをログするかどうか。 (デフォルト=False)
送出される例外
ValueError:wandb.init()が呼び出されていない場合、またはいずれかのモデルがtorch.nn.Moduleのインスタンスではない場合。
メソッド Run.write_logs()
write_logs を使用して Logs タブに直接テキストを書き込みます。run の終了後にこのメソッドを呼び出しても、何も通知されずに無視されます。
Python の logging モジュールと連携する capture_loggers 設定の使用を検討してください。
引数
str
書き込むテキストです。末尾に改行がない場合は、改行が追加されます。