メインコンテンツへスキップ
実験を整理し、作業をトラッキングするために、W&B の run を初期化して管理します。

実験を作成する

"""
W&B でエクスペリメントを作成します。プロジェクトが存在しない場合、W&B が自動的に作成します。

このファイルはエクスペリメントの初期化のみを行います。`with` ブロック内にメトリクスや
Artifacts などをログするコードを追加できます。
"""
import wandb

# W&B の run を初期化する
with wandb.init(project="<project>") as run:
    # エクスペリメントのコードをここに記述する
    pass

既存のrunを特定のstepからフォークする

"""特定のstepから既存のW&B runをフォークします。"""

import wandb

# 後でフォークするrunを初期化します
with wandb.init(project="<project>", entity="<entity>") as original_run:
    # トレーニングとloggingのコードをここに記述します。
    pass

# 特定のstepからrunをフォークします。この例ではstep 200からフォークします。必要に応じてstep番号を調整してください。
with wandb.init(project="<project>",entity="<entity>", fork_from=f"{original_run.id}?_step=200") as forked_run:
    # トレーニングとloggingのコードをここに記述します。
    pass

run を初期化する

"""
W&B の run を初期化します。

プロジェクトが存在しない場合、W&B は自動的に作成します。このファイルは
実験の初期化のみを行います。メトリクスや Artifacts などをログするコードは
`with` ブロック内に追加できます。
"""
import wandb

# リソースを適切に管理するため、`with` 文を使用しています。
with wandb.init(project="<project>") as run:
    # トレーニングおよびログのコードをここに記述します
    pass

run が一時停止、停止、または失敗した場合の再開時の動作を設定する

"""
一時停止、停止、または失敗した場合のrunの再開動作を設定します。

これは中断される可能性のある長時間実行のexperimentに役立ちます。すべての再開オプションの一覧については、
wandb.init(resume=) のリファレンスドキュメントを参照してください。
"""
import wandb

# 再開動作を指定してW&B runを初期化する
with wandb.init(project="<project>", resume="<resume_option>") as run:
    # トレーニングおよびloggingのコードをここに記述する
    pass

run を巻き戻して履歴を変更する

"""
runのhistoryを変更するためにrunを巻き戻します。

`wandb.init()` の `resume_from` パラメーターで、巻き戻し先のrun IDとstepを指定してください。
"""
import wandb
import math

# runを初期化してメトリクスをログする
with wandb.init(project="<project>", entity="<entity>") as run:
    # トレーニングとloggingのコードをここに記述する
    pass

run_ID = "<run_id>" # 元のrunのrun IDに置き換えてください
step = int("<step>") # 巻き戻し先のstepを指定する

# 元のrunの指定したstepから再開する新しいrunを開始する
with wandb.init(project="<project>", entity="<entity>", resume_from=f"{run_ID}?_step={step}") as run:
    # トレーニングとloggingのコードをここに記述する
    pass    

run に 1 つ以上の タグ を追加する

"""
runに1つ以上のタグを追加します。
"""
import wandb

with wandb.init(entity="<entity>", project="<project>", tags=["<tag1>", "<tag2>"]) as run:
    # トレーニングとloggingのコードをここに記述します
    pass

1つ以上の run をグループに追加する

"""
1つ以上のrunをグループに追加します。

`wandb.init(group="")` でrunを初期化する際に、`group` パラメーターの引数としてグループ名を渡してください。
"""
import wandb

entity = "<entity>"
project = "<project>"

# 以下では、各グループに3つのrunを含む、合計3つのグループを作成します。 
for group in ["<GroupA>", "<GroupB>", "<GroupC>"]: # 任意のグループ名に置き換えてください
    # 各グループに3つのrunを作成するシミュレーションです。
    for i in range(3):
        with wandb.init(entity=entity, project=project, group=group, name=f"{group}_run_{i}") as run:
            # トレーニングおよびloggingのコードをここに記述します
            pass    

run をジョブタイプごとに整理する

"""
ジョブタイプごとにrunを整理します。

`wandb.init(job_type="")` に `job_type` パラメーターを渡すことで、runにジョブタイプを追加できます。
"""
import wandb

entity = "<entity>"
project = "<project>"

# runを作成し、ジョブタイプごとに整理します。
for job_type in ["<JobType1>", "<JobType2>"]: # ジョブタイプ名に置き換えてください
    # 各ジョブタイプに対して2つのrunを作成するシミュレーションです。
    for i in range(2):
        with wandb.init(entity=entity, project=project, job_type=job_type, name=f"{job_type}_run_{i}") as run:
            # トレーニングおよびloggingのコードをここに記述します
            pass    

アクティブな run に1つ以上の タグ を追加する

"""
アクティブなrunに1つ以上のタグを追加します。

runオブジェクトの`tags`プロパティはタプルです。既存のrunに新しいタグを追加するには、
既存のタグと新しいタグを含む新しいタプルで`tags`プロパティを更新してください。
"""

import wandb

with wandb.init(entity="<entity>", project="<project>", tags=["<tag1>", "<tag2>"]) as run:
    # トレーニングとloggingのコードをここに記述します

    # 既存のタグと新しいタグを含む新しいタプルを作成して、既存のタグに新しいタグを追加します。
    run.tags += ("<tag3>",)

以前に保存した run にタグを1つ以上追加する

"""
保存済みのrunに1つ以上のタグを追加します。

runが終了した後、またはrunプロセスの外で作業している場合に、
Public APIを使用して保存済みデータのタグを更新します。

runに新しいタグを追加するには、既存のタグと新しいタグを含む
新しいリストで "tags" プロパティを更新してください。
runのパスはentity/project/run_idで構成されます。
タグを更新した後、runの `update()` methodを呼び出して変更を保存してください。
"""
import wandb

entity = "<entity>"
project = "<project>"
run_id = "<run-id>"  # 更新したいrunのIDに置き換えてください

# パスはentity/project/run_idで構成されます
with wandb.Api().run(f"{entity}/{project}/{run_id}") as run:
  run.tags.append("<tag>")
  run.update()