メインコンテンツまでスキップ

Run

GitHubでソースを見る

wandbによってログされる計算の単位。通常、これはML実験です。

Run(
settings: Settings,
config: Optional[Dict[str, Any]] = None,
sweep_config: Optional[Dict[str, Any]] = None,
launch_config: Optional[Dict[str, Any]] = None
) -> None

wandb.init()を使ってrunを作成します:

import wandb

run = wandb.init()

任意のプロセスでアクティブな wandb.Run は最大で1つだけであり、wandb.run としてアクセスできます:

import wandb

assert wandb.run is None

wandb.init()

assert wandb.run is not None

wandb.log でログしたものは、そのrunに送られます。 同じスクリプトやノートブックで複数のrunを開始したい場合は、進行中のrunを終了する必要があります。runはwandb.finishで終了させるか、withブロックを使用して終了させます。

import wandb

wandb.init()
wandb.finish()

assert wandb.run is None

with wandb.init() as run:
pass # ここでデータをログに記録

assert wandb.run is None

runの作成についてはwandb.initのドキュメントを参照してください。wandb.initに関する当社のガイドもチェックしてみてください。

分散トレーニングでは、ランク0プロセスで単一のrunを作成し、そのプロセスからの情報のみをログに記録するか、各プロセスでrunを作成し、それぞれ別々にログに記録し、wandb.initgroup引数で結果をまとめることができます。W&Bを使った分散トレーニングの詳細については、当社のガイドをご覧ください。

現在、wandb.Apiには並列Runオブジェクトが存在しています。これら2つのオブジェクトは最終的には統合される予定です。

属性
summary(Summary) 各wandb.log()キーに設定された単一の値。デフォルトでは、サマリーは最後にログされた値に設定されます。サマリーを最後の値ではなく、最大精度などの最適な値に手動で設定することができます。
configこのrunに関連する設定オブジェクト。
dirrunに関連するファイルが保存されているディレクトリ。
entityrunに関連するW&Bエンティティの名前。エンティティはユーザー名やチーム名、組織名などになります。
grouprunに関連するグループ名。グループを設定すると、W&BのUIがrunを適切な方法で整理するのに役立ちます。分散トレーニングを行っている場合は、トレーニング中のすべてのランに同じグループ名を付ける必要があります。クロスバリデーションを行っている場合は、すべてのクロスバリデーションフォールドに同じグループ名を付ける必要があります。
idこのrunの識別子。
mode0.9.x以前の互換性のために、最終的に非推奨。
namerunの表示名。表示名は一意であることが保証されておらず、説明的であることがあります。デフォルトでは、ランダムに生成されます。
notesrunに関連するメモがあれば、そのメモ。メモは複数行の文字列で、マークダウンや$$内のlatex方程式($x + 3$のような)も使用できます。
pathrunへのパス。runパスにはエンティティ、プロジェクト、およびrun IDが含まれ、entity/project/run_idの形式で表示されます。
projectrunに関連するW&Bプロジェクトの名前。
resumedrunが再開された場合はTrue、そうでない場合はFalse。
settingsrunの設定オブジェクトの凍結コピー。
start_timerunが開始された時のUnixタイムスタンプ(秒単位)。
starting_steprunの最初のステップ。
stepステップの現在の値。このカウンターはwandb.logによってインクリメントされます。
sweep_idrunに関連するスイープのID(ある場合)。
tagsrunに関連するタグがあれば、それらのタグ。
urlrunに関連するW&Bのurl。

メソッド

alert

ソースを表示

alert(
title: str,
text: str,
level: Optional[Union[str, 'AlertLevel']] = None,
wait_duration: Union[int, float, timedelta, None] = None
) -> None

指定されたタイトルとテキストでアラートを起動します。

引数
title(str) アラートのタイトル。64文字未満である必要があります。
text(str) アラートの本文。
level(strまたはwandb.AlertLevel、オプション) 使用するアラートレベル。 INFOWARN、または ERROR のいずれか。
wait_duration(int、float、timedelta、オプション) このタイトルで他のアラートを送信するまでの待機時間(秒)。

define_metric

ソースを表示

define_metric(
name: str,
step_metric: Union[str, wandb_metric.Metric, None] = None,
step_sync: Optional[bool] = None,
hidden: Optional[bool] = None,
summary: Optional[str] = None,
goal: Optional[str] = None,
overwrite: Optional[bool] = None,
**kwargs
) -> wandb_metric.Metric

wandb.log()で後でログに記録されるメトリックのプロパティを定義します。

引数
nameメトリックの名前。
step_metricメトリックに関連する独立変数。
step_sync必要に応じてstep_metricを履歴に自動追加。step_metricが指定されている場合、デフォルトでTrue。
hiddenこのメトリックを自動プロットから非表示にします。
summaryサマリーに追加される集計メトリックを指定。サポートされる集計: "min,max,mean,best,last,none" デフォルトの集計はcopy 集計bestはデフォルトでgoal==minimize
goalメトリックの最適化方向を指定します。サポートされる方向: "minimize,maximize"
戻り値
さらに指定可能なメトリックオブジェクトが返されます。

detach

ソースを表示

detach() -> None

display

ソースを表示

display(
height: int = 420,
hidden: bool = (False)
) -> bool

この実行をjupyterで表示します。

finish

ソースを見る

finish(
exit_code: Optional[int] = None,
quiet: Optional[bool] = None
) -> None

実行を終了済みとしてマークし、すべてのデータのアップロードを完了します。

これは、同じプロセスで複数のrunを作成する場合に使用されます。スクリプトが終了するか、runコンテキストマネージャを使用した場合に、このメソッドを自動的に呼び出します。

引数
exit_code実行を失敗としてマークするには、0以外の値を設定します
quietログ出力を最小限に抑えるには、trueに設定します

finish_artifact

ソースを見る

finish_artifact(
artifact_or_path: Union[wandb_artifacts.Artifact, str],
name: Optional[str] = None,
type: Optional[str] = None,
aliases: Optional[List[str]] = None,
distributed_id: Optional[str] = None
) -> wandb_artifacts.Artifact

runの出力として、非確定的なアーティファクトを終了させます。

同じ分散IDでの後続の "upserts" は、新しいバージョンが生成されます。

引数
artifact_or_path(str または Artifact) このアーティファクトの内容へのパスで、以下の形式があります: - /local/directory - /local/directory/file.txt - s3://bucket/path wandb.Artifact を呼び出すことで作成される Artifact オブジェクトも渡すことができます。
name(str, 任意) アーティファクト名。エンティティ/プロジェクトでプリフィックス付きも可。有効な名前は以下の形式であることができます: - name:version - name:alias - digest 指定されていない場合、パスのベース名に現在のrun IDが追加されたものがデフォルトになります。
type(str) ログに残すアーティファクトの種類。例えば、datasetmodel など
aliases(list, 任意) このアーティファクトに適用するエイリアス。デフォルトは ["latest"] です
distributed_id(string, 任意) すべての分散ジョブが共有するユニークな文字列。None の場合、runのグループ名がデフォルトになります。
戻り値
Artifactオブジェクト。

get_project_url

ソースを見る

get_project_url() -> Optional[str]

runに関連付けられたW&BプロジェクトのURLを返します(ある場合)。

オフラインのrunでは、プロジェクトのURLはありません。

get_sweep_url

ソースを見る

get_sweep_url() -> Optional[str]

runに関連付けられたスイープのurlを返します(もしあれば)。

get_url

ソースを表示

get_url() -> Optional[str]

W&B runのurlを返します(もしあれば)。

オフラインのrunではurlがありません。

join

ソースを表示

join(
exit_code: Optional[int] = None
) -> None

finish()の非推奨エイリアス - 代わりにfinishを使用してください。

ソースを見る

link_artifact(
artifact: Union[public.Artifact, Artifact],
target_path: str,
aliases: Optional[List[str]] = None
) -> None

指定されたアーティファクトをポートフォリオ(プロモートされたアーティファクトのコレクション)にリンクします。

リンクされたアーティファクトは、指定されたポートフォリオのUIで表示されます。

引数
artifactリンクされる(パブリックまたはローカル)アーティファクト
target_pathstr - 次の形式をとります:{portfolio}、{project}/{portfolio}、または {entity}/{project}/{portfolio}
aliasesList[str] - ポートフォリオ内のこのリンクされたアーティファクトに適用されるオプションのエイリアス。エイリアス "latest" は、リンクされたアーティファクトの最新バージョンに常に適用されます。
戻り値
None

log

ソースを見る

log(
data: Dict[str, Any],
step: Optional[int] = None,
commit: Optional[bool] = None,
sync: Optional[bool] = None
) -> None

現在のrunの履歴にデータの辞書を記録します。

wandb.logを使用して、スカラ、画像、ビデオ、ヒストグラム、プロット、テーブルなどのrunからデータを記録します。

ライブの例、コードスニペット、ベストプラクティスなどを知るには、記録のガイドを参照してください。

最も基本的な使い方は wandb.log({"train-loss": 0.5, "accuracy": 0.9}) です。これにより、損失と精度がrunの履歴に保存され、これらのメトリックのサマリー値が更新されます。

記録されたデータは、wandb.ai のワークスペースで可視化したり、W&Bアプリのセルフホスティングされたインスタンス上でローカルに表示したり、APIを使用してJupyterノートブックなどでローカルに可視化・探索したりできます。

UIでは、サマリー値は、run間で単一の値を比較するためのrunテーブルに表示されます。サマリー値は、wandb.run.summary["key"] = valueで直接設定することもできます。

記録する値はスカラである必要はありません。wandbオブジェクトの記録がサポートされています。例えば、wandb.log({"example": wandb.Image("myimage.jpg")})では、W&BのUIで適切に表示される例の画像を記録します。サポートされているさまざまなタイプについては、リファレンスドキュメントを参照するか、3D分子構造やセグメンテーションマスク、PR曲線、ヒストグラムなどを含む例が掲載されている記録のガイドをご覧ください。wandb.Tableは構造化データを記録するために使用できます。詳細についてはテーブルの記録ガイドを参照してください。

入れ子になったメトリクスの記録が推奨されており、W&BのUIでサポートされています。入れ子になった辞書で記録する場合、wandb.log({"train": {"acc": 0.9}, "val": {"acc": 0.8}})とすると、W&BのUIではメトリックがtrainvalのセクションに整理されます。

wandbはグローバルなステップを維持しており、デフォルトではwandb.logを呼び出すたびにインクリメントされます。そのため、関連するメトリクスをまとめて記録することが推奨されます。関連するメトリクスをまとめて記録するのが不便な場合は、wandb.log({"train-loss": 0.5}, commit=False) とした後に wandb.log({"accuracy": 0.9}) と呼び出すことは、wandb.log({"train-loss": 0.5, "accuracy": 0.9}) を呼び出すことと同等です。 wandb.logは、1秒あたり数回以上呼び出されることを想定していません。 もし、それより頻繁にログを取りたい場合は、クライアント側でデータを集約するか、 パフォーマンスが低下することがあります。

引数
data(辞書, 任意) シリアライズ可能なPythonオブジェクトの辞書です。strintsfloatsTensorsdicts、またはwandb.data_typesのいずれか。
commit(boolean, 任意) メトリクスの辞書をwandbサーバーに保存し、ステップをインクリメントします。falseの場合、wandb.logはdata引数で現在のメトリクス辞書を更新し、commit=Truewandb.logが呼び出されるまでメトリクスは保存されません。
step(整数, 任意) 処理のグローバルステップです。これにより、指定されたステップのコミットをデフォルトで無効にする以前の非コミット済みステップが保持されます。
sync(boolean, True) この引数は非推奨であり、現在はwandb.logの振る舞いは変更されません。

例:

より多くの詳細な例については、 ログの取り方に関するガイドを参照してください。

基本的な使い方

import wandb

wandb.init()
wandb.log({"accuracy": 0.9, "epoch": 5})

インクリメンタルなログ

import wandb

wandb.init()
wandb.log({"loss": 0.2}, commit=False)
# どこか別の場所で、このステップを報告する準備ができたとき:
wandb.log({"accuracy": 0.8})

ヒストグラム

import numpy as np
import wandb

# 正規分布からランダムに勾配をサンプリングします
gradients = np.random.randn(100, 100)
wandb.init()
wandb.log({"gradients": wandb.Histogram(gradients)})

numpyからの画像

import numpy as np
import wandb

wandb.init()
examples = []
for i in range(3):
pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
image = wandb.Image(pixels, caption=f"random field {i}")
examples.append(image)
wandb.log({"examples": examples})

PILからの画像

import numpy as np
from PIL import Image as PILImage
import wandb

wandb.init()
examples = []
for i in range(3):
pixels = np.random.randint(low=0, high=256, size=(100, 100, 3), dtype=np.uint8)
pil_image = PILImage.fromarray(pixels, mode="RGB")
image = wandb.Image(pil_image, caption=f"random field {i}")
examples.append(image)
wandb.log({"examples": examples})

numpyからのビデオ

import numpy as np
import wandb

wandb.init()
# 軸は (時間, チャンネル, 高さ, 幅)
frames = np.random.randint(low=0, high=256, size=(10, 3, 100, 100), dtype=np.uint8)
wandb.log({"video": wandb.Video(frames, fps=4)})

Matplotlibプロット

from matplotlib import pyplot as plt
import numpy as np
import wandb

wandb.init()
fig, ax = plt.subplots()
x = np.linspace(0, 10)
y = x * x
ax.plot(x, y) # y = x^2のプロット
wandb.log({"chart": fig})

PR曲線

wandb.log({"pr": wandb.plots.precision_recall(y_test, y_probas, labels)})

3Dオブジェクト

wandb.log(
{
"generated_samples": [
wandb.Object3D(open("sample.obj")),
wandb.Object3D(open("sample.gltf")),
wandb.Object3D(open("sample.glb")),
]
}
)
例外
wandb.Errorwandb.initの前に呼び出された場合
ValueError不正なデータが渡された場合

log_artifact

ソースコードを見る

log_artifact(
artifact_or_path: Union[wandb_artifacts.Artifact, StrPath],
name: Optional[str] = None,
type: Optional[str] = None,
aliases: Optional[List[str]] = None
) -> wandb_artifacts.Artifact

アーティファクトをrunの出力として宣言します。

引数
artifact_or_path(str または Artifact) このアーティファクトの内容へのパスで、次の形式で表すことができます: - /local/directory - /local/directory/file.txt - s3://bucket/path また、wandb.Artifactを呼び出して作成されたArtifactオブジェクトを渡すこともできます。
name(str, オプション) アーティファクト名。エンティティ/プロジェクトでプレフィックスが付けられている場合もあります。有効な名前は次の形式で表すことができます: - name:version - name:alias - digest 指定されていない場合、デフォルトではパスのベース名が現在のrun IDに前置されます。
type(str) ログするアーティファクトの種類。datasetmodel などの例があります。
aliases(list, オプション) このアーティファクトに適用するエイリアスで、デフォルトは ["latest"]
返り値
Artifactオブジェクト。

log_code

ソースを表示

log_code(
root: Optional[str] = ".",
name: Optional[str] = None,
include_fn: Callable[[str], bool] = _is_py_path,
exclude_fn: Callable[[str], bool] = filenames.exclude_wandb_fn
) -> Optional[Artifact]

現在のコードの状態をW&Bアーティファクトに保存します。

デフォルトでは、現在のディレクトリーを走査し、.pyで終わるすべてのファイルをログします。

引数
rootコードを再帰的に検索する相対( os.getcwd() に対する)または絶対パス。
name(str, オプション) コードアーティファクトの名前。デフォルトでは、アーティファクトの名前は source-$PROJECT_ID-$ENTRYPOINT_RELPATH になります。複数のrunが同じアーティファクトを共有するシナリオがある場合、nameを指定することで実現できます。
include_fnファイルパスを受け入れ、含めるべき場合は True を、そうでない場合は False を返す呼び出し可能なオブジェクト。デフォルトでは、lambda path: path.endswith(".py") になります。
exclude_fnファイルパスを受け入れ、除外すべき場合は True を、そうでない場合は False を返す呼び出し可能なオブジェクト。デフォルトでは、lambda path: False になります。

例:

基本的な使い方

run.log_code()

高度な使い方

run.log_code(
"../", include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb")
)
Returns
コードがログされた場合、Artifactオブジェクト

mark_preempting

ソースを表示する

mark_preempting() -> None

このrunを事前停止としてマークします。

また、内部プロセスに対して、これをすぐにサーバーに報告するよう指示します。

plot_table

ソースを表示する

@staticmethod
plot_table(
vega_spec_name: str,
data_table: "wandb.Table",
fields: Dict[str, Any],
string_fields: Optional[Dict[str, Any]] = None
) -> CustomChart

テーブル上にカスタムプロットを作成します。 | 引数 | | | :--- | :--- | | vega_spec_name | プロットの仕様名 | | data_table | 可視化で使用されるデータを含むwandb.Tableオブジェクト | | fields | カスタム可視化が必要とするフィールドへのテーブルキーのマッピングを表す辞書 | | string_fields | カスタム可視化が必要とする文字列定数の値を提供する辞書 |

project_name

ソースを表示

project_name() -> str

restore

ソースを表示

restore(
name: str,
run_path: Optional[str] = None,
replace: bool = (False),
root: Optional[str] = None
) -> Union[None, TextIO]

指定されたファイルをクラウドストレージからダウンロードします。 ファイルは現在のディレクトリーまたはrunディレクトリーに配置されます。 デフォルトでは、ファイルがすでに存在しない場合にのみダウンロードします。

引数
nameファイルの名前
run_pathファイルを取得するrunへのオプションのパス。例:username/project_name/run_id 。wandb.initが呼び出されていない場合、この引数は必須です。
replaceファイルがローカルに既に存在していてもダウンロードするかどうか
rootファイルをダウンロードするディレクトリー。デフォルトでは、現在のディレクトリーまたは、wandb.initが呼び出されている場合はrunディレクトリーになります。
戻り値
ファイルが見つからない場合はNone、それ以外の場合は読み取り用に開いたファイルオブジェクト
例外
wandb.CommErrorwandbのバックエンドに接続できない場合
ValueErrorファイルが見つからないか、run_pathが見つからない場合

save

ソースを表示

save(
glob_str: Optional[str] = None,
base_path: Optional[str] = None,
policy: "PolicyName" = "live"
) -> Union[bool, List[str]]

指定されたポリシーでglob_strに一致するすべてのファイルがwandbと同期されることを保証します。 | 引数 | | | :--- | :--- | | glob_str | (string) unix globまたは正規パスへの相対または絶対パス。これが指定されていない場合、メソッドは何もしません。 | | base_path | (string) globを実行するための基本パス | | policy | (string) livenow、または end のうちの1つ - live: ファイルを変更するたびにアップロードし、前のバージョンを上書きします - now: ファイルを今すぐ一度アップロードします - end: ランが終了するときだけファイルをアップロードします |

status

ソースを表示

status() -> RunStatus

内部バックエンドから現在のランの同期状況に関する情報を取得します。

to_html

ソースを表示

to_html(
height: int = 420,
hidden: bool = (False)
) -> str

現在のランを表示するiframeを含むHTMLを生成します。

unwatch

ソースを見る

unwatch(
models=None
) -> None

upsert_artifact

ソースを見る

upsert_artifact(
artifact_or_path: Union[wandb_artifacts.Artifact, str],
name: Optional[str] = None,
type: Optional[str] = None,
aliases: Optional[List[str]] = None,
distributed_id: Optional[str] = None
) -> wandb_artifacts.Artifact

実行の出力として非確定アーティファクトを宣言(または追加)します。

run.finish_artifact()を呼び出してアーティファクトを確定させる必要があることに注意してください。 これは、分散ジョブがすべて同じアーティファクトに貢献する必要がある場合に便利です。

引数
artifact_or_path(str または Artifact) このアーティファクトの内容へのパス。次の形式であることができます:- /local/directory - /local/directory/file.txt - s3://bucket/path または、wandb.Artifactを呼び出すことで作成されたArtifactオブジェクトを渡すこともできます。
name(str, 任意) アーティファクト名。エンティティ/プロジェクトでプレフィックスが付けられる場合があります。有効な名前は次の形式であることができます:- name:version - name:alias - digest 指定されていない場合、これはデフォルトでパスのベース名に現在の実行IDが付加されます。
type(str) ログに記録するアーティファクトのタイプ。例えば datasetmodel など
aliases(リスト, 任意) このアーティファクトに適用するエイリアス。デフォルトでは ["latest"] になります。
distributed_id(string, 任意) すべての分散ジョブが共有する一意の文字列。Noneの場合、実行のグループ名がデフォルトで使用されます。
Returns
:---:---
Artifactオブジェクト。

use_artifact

ソースを表示

use_artifact(
artifact_or_name: Union[str, public.Artifact, Artifact],
type: Optional[str] = None,
aliases: Optional[List[str]] = None,
use_as: Optional[str] = None
) -> Union[public.Artifact, Artifact]

アーティファクトをrunの入力として宣言します。

返されたオブジェクトでdownloadfileを呼び出して、ローカルに内容を取得します。

引数
artifact_or_name(strまたはArtifact) アーティファクト名。エンティティ/プロジェクト/で接頭辞付け可能です。有効な名前は以下の形式があります: - name:version - name:alias - digest また、wandb.Artifactを呼び出して作成されたArtifactオブジェクトを渡すこともできます。
type(str, 任意) 使用するアーティファクトのタイプ。
aliases(list, 任意) このアーティファクトに適用するエイリアス
use_as(string, 任意) このアーティファクトがどの目的で使用されたかを示す任意の文字列。UIに表示されます。
Returns
Artifactオブジェクト。

watch

ソースを見る

watch(
モデル, criterion=None, ログ="gradients", log_freq=100, idx=None,
log_graph=(False)
) -> None

__enter__

ソースを見る

__enter__() -> "Run"

__exit__

ソースを見る

__exit__(
exc_type: Type[BaseException],
exc_val: BaseException,
exc_tb: TracebackType
) -> bool
Was this page helpful?👍👎