Skip to main content
単一の スクリプト 内で複数の Runs を ログ に記録するには、新しい Run を開始する前に前の Run を終了させる必要があります。 推奨される方法は、wandb.init() をコンテキストマネージャーとして使用することです。これにより、Run が自動的に終了し、スクリプト で例外が発生した場合には失敗としてマークされます。
import wandb

for x in range(10):
    # wandb.init() をコンテキストマネージャーとして使用
    with wandb.init() as run:
        for y in range(100):
            run.log({"metric": x + y})
また、明示的に run.finish() を呼び出すことも可能です。
import wandb

for x in range(10):
    run = wandb.init()

    try:
        for y in range(100):
            run.log({"metric": x + y})

    except Exception:
        # 例外が発生した場合は終了コード1で終了
        run.finish(exit_code=1)
        raise

    finally:
        # 正常終了時または例外処理後に終了
        run.finish()

複数のアクティブな Run

wandb 0.19.10 以降では、reinit 設定を "create_new" に設定することで、複数の Run を同時にアクティブにすることが可能です。
import wandb

# reinit="create_new" を使用して複数のアクティブな Run を作成
with wandb.init(reinit="create_new") as tracking_run:
    for x in range(10):
        with wandb.init(reinit="create_new") as run:
            for y in range(100):
                run.log({"x_plus_y": x + y})

            tracking_run.log({"x": x})
reinit="create_new" に関する詳細や、W&B インテグレーション に関する注意事項については、Multiple runs per process を参照してください。