Skip to main content
Pour journaliser plusieurs runs dans un même script, vous devez terminer chaque run précédent avant d’en démarrer un nouveau. Les sections suivantes décrivent deux approches pour enchaîner les runs dans un script, ainsi qu’une approche distincte pour conserver plusieurs runs actifs en même temps.

Utiliser un gestionnaire de contexte

Utilisez wandb.init() comme gestionnaire de contexte. Cette approche termine le run et le marque comme ayant échoué si votre script lève une exception :
import wandb

for x in range(10):
    with wandb.init() as run:
        for y in range(100):
            run.log({"metric": x + y})

Appelez explicitement run.finish

Vous pouvez également appeler explicitement 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:
        run.finish(exit_code=1)
        raise

    finally:
        run.finish()

Plusieurs runs actifs

Dans wandb 0.19.10 et les versions ultérieures, si vous avez besoin de plusieurs runs actifs en même temps au lieu de les exécuter séquentiellement, définissez le paramètre reinit sur "create_new" afin de créer plusieurs runs actifs simultanément.
import wandb

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})
Pour en savoir plus sur reinit="create_new", y compris les points à prendre en compte concernant les intégrations W&B, voir Plusieurs runs par processus.
Experiments