Classe wandb.Run
Une unité de calcul journalisée par W&B. Il s’agit généralement d’une expérience de machine learning. Appelezwandb.init() pour créer un
nouveau run. wandb.init() démarre un nouveau run et renvoie un objet wandb.Run.
Chaque run est associé à un ID unique (ID du run). W&B recommande d’utiliser
un gestionnaire de contexte (instruction with) pour terminer automatiquement le run.
Pour les expériences d’entraînement distribué, vous pouvez soit suivre chaque processus
séparément avec un run par processus, soit suivre tous les processus dans un run unique.
Voir Log distributed training experiments
pour plus d’informations.
Vous pouvez journaliser des données dans un run avec wandb.Run.log(). Tout ce que vous journalisez avec
wandb.Run.log() est envoyé à ce run. Voir
Create an experiment ou
la page de référence de l’API wandb.init
pour plus d’informations.
Il existe un autre objet Run dans l’espace de noms
wandb.apis.public.
Utilisez cet objet pour interagir avec des runs déjà
créés.
Attributs
summary: (Synthèse) Synthèse du run, sous la forme d’un objet de type dictionnaire. Pour plus d’informations, voir Log summary metrics.
Exemples
Créez un run avecwandb.init() :
Propriétés
wandb_config.Config
Objet de configuration associé à ce run.
wandb_config.ConfigStatic
Objet de configuration statique associé à ce run.
str
Répertoire dans lequel sont enregistrés les fichiers d’un run.Cela concerne les fichiers enregistrés avec
run.save(), y compris ceux créés
automatiquement pour certains types de données transmis à run.log(). Pour le
répertoire contenant toutes les données d’un run, voir run.sync_dir.bool
True si le run est désactivé, False sinon.
str
Nom de l’entité W&B associée au run.L’entité peut être un nom d’utilisateur ou le nom d’une équipe ou d’une organisation.
str
Renvoie le nom du groupe associé à ce run.Le regroupement de runs permet d’organiser et de visualiser ensemble des expériences
associées dans l’interface W&B. Cela est particulièrement utile dans des scénarios tels
que l’entraînement distribué ou la validation croisée, où plusieurs runs doivent être
consultés et gérés comme une expérience unifiée.En mode partagé, où tous les processus partagent le même objet run,
il n’est généralement pas nécessaire de définir un groupe, puisqu’il n’y a qu’un seul
run et qu’aucun regroupement n’est requis.
str
Identifiant de ce run.
str
Nom du type de tâche associé au run.Consultez le type de tâche d’un run sur sa page Aperçu dans W&B App.Vous pouvez l’utiliser pour catégoriser les runs selon leur type de tâche, par exemple
« training », « evaluation » ou « inference ». Cela est utile pour organiser
et filtrer les runs dans l’interface W&B, en particulier lorsque plusieurs
runs de types de tâches différents se trouvent dans le même projet. Pour plus
d’informations, voir Organiser les runs.
str | None
Nom d’affichage du run.Les noms d’affichage ne sont pas nécessairement uniques et peuvent être descriptifs.
Par défaut, ils sont générés aléatoirement.
str | None
Notes associées au run, le cas échéant.Les notes peuvent être une chaîne multiligne et inclure des équations Markdown et LaTeX
entre
$$, comme $x + 3$.bool
True si le run est hors ligne, False sinon.
str
Chemin du run.Les chemins de run comprennent l’entité, le projet et l’ID du run, au format
entity/project/run_id.str
Nom du projet W&B associé au run.
str | None
URL du projet W&B associé au run, le cas échéant.Les runs hors ligne n’ont pas d’URL de projet.
bool
True si le run a été repris, False sinon.
Settings
Copie figée de l’objet Settings du run.
float
Horodatage Unix (en secondes) du début du run.
int
Étape W&B du prochain appel à
log().Lève une erreur pour les runs en mode=“shared”.str | None
Identifiant du sweep associé au run, le cas échéant.
str | None
URL du sweep associé au run, le cas échéant.Les runs hors ligne n’ont pas d’URL de sweep.
str
Répertoire contenant toutes les données d’un run.Il peut être transmis à
wandb sync pour téléverser ou retéléverser le run.tuple | None
Tags associés au run, le cas échéant.
str | None
URL du run W&B, le cas échéant.Les runs hors ligne n’ont pas d’URL.
Méthodes
méthode Run.alert()
Arguments
str
Le titre de l’alerte, qui doit comporter moins de 64 caractères.
str
Le corps du message de l’alerte.
str | AlertLevel | None
Le niveau d’alerte à utiliser :
INFO, WARN ou ERROR.int | float | timedelta | None
Le délai d’attente (en secondes) avant d’envoyer une autre alerte avec ce titre.
méthode Run.define_metric()
wandb.Run.log().
Arguments
str
Le nom de la métrique à personnaliser.
str | wandb_metric.Metric | None
Le nom d’une autre métrique à utiliser comme axe X pour cette métrique dans les graphiques générés automatiquement.
bool | None
Insère automatiquement la dernière valeur de step_metric dans
wandb.Run.log() si elle n’est pas fournie explicitement. Par défaut, True si step_metric est spécifiée.Masque cette métrique des graphiques générés automatiquement.
str | None
Spécifiez les agrégations de métriques ajoutées à la synthèse. Les agrégations prises en charge incluent « min », « max », « mean », « last », « first », « copy » et « none ». « none » empêche la génération d’une synthèse. « copy » est obsolète et ne doit pas être utilisé.
bool | None
Si false, cet appel est fusionné avec les appels
define_metric précédents pour la même métrique, en utilisant leurs valeurs pour tous les paramètres non spécifiés. Si true, les paramètres non spécifiés remplacent les valeurs définies par les appels précédents.méthode Run.display()
Arguments
int
Aucune description fournie.
Aucune description fournie.
méthode Run.finish()
- Running : run actif qui journalise des données et/ou envoie des signaux de pulsation.
- Crashed : run qui a cessé d’envoyer des signaux de pulsation de façon inattendue.
- Finished : run terminé avec succès (
exit_code=0) et dont toutes les données sont synchronisées. - Failed : run terminé avec des erreurs (
exit_code!=0). - Killed : run arrêté de force avant d’avoir pu se terminer.
Arguments
int | None
Entier indiquant le statut de sortie du run. Utilisez 0 pour signaler une réussite ; toute autre valeur marque le run comme échoué.
méthode Run.finish_artifact()
Arguments
Artifact | str
Chemin vers le contenu de cet artifact,
pouvant prendre les formes suivantes :
/local/directory/local/directory/file.txts3://bucket/pathVous pouvez également passer un objet Artifact créé en appelantwandb.Artifact.
str | None
Nom d’un artifact. Peut être préfixé par entité/projet.
Les noms valides peuvent prendre les formes suivantes :
- name:version
- name:alias
- digest S’il n’est pas spécifié, la valeur par défaut sera le nom de base du chemin, précédé de l’ID du run actuel.
str | None
Le type d’artifact à journaliser, par exemple
dataset, modellist[str] | None
Alias à appliquer à cet artifact, valeurs par défaut :
["latest"]str | None
Chaîne unique partagée par tous les jobs distribués. Si None, la valeur par défaut est le nom du groupe du run.
méthode Run.link_artifact()
Arguments
Artifact
L’objet artifact à lier à la collection.
str
Le chemin de la collection. Il se compose du préfixe « wandb-registry- », ainsi que du nom du registre et du nom de la collection :
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}.list[str] | None
Ajoutez un ou plusieurs alias à l’artifact lié. L’alias « latest » est automatiquement appliqué à l’artifact le plus récent que vous liez.
Exemples
méthode Run.link_model()
- Vérifie si l’artifact de modèle ‘name’ a été journalisé. Si c’est le cas, utilise la version de l’artifact correspondant aux fichiers situés à ‘path’ ou journalise une nouvelle version. Sinon, elle journalise les fichiers sous ‘path’ en tant que nouvel artifact de modèle, ‘name’, de type ‘model’.
- Vérifie si un modèle enregistré nommé ‘registered_model_name’ existe dans le projet ‘model-registry’. Sinon, crée un nouveau modèle enregistré nommé ‘registered_model_name’.
- Lie la version de l’artifact de modèle ‘name’ au modèle enregistré ‘registered_model_name’.
- Attache les alias de la liste ‘aliases’ à la version de l’artifact de modèle nouvellement liée.
Arguments
StrPath
(str) Chemin vers le contenu de ce modèle, pouvant prendre les
formes suivantes :
/local/directory/local/directory/file.txts3://bucket/path
str
Nom du modèle enregistré auquel lier le modèle. Un modèle enregistré est une collection de versions de modèle liées au registre de modèles, représentant généralement une tâche de ML propre à une équipe. L’entité à laquelle ce modèle enregistré appartient est dérivée du run.
str | None
Nom de l’artifact de modèle dans lequel les fichiers de ‘path’ seront journalisés. Par défaut, il s’agit du nom de base du chemin, précédé de l’ID du run actuel, s’il n’est pas spécifié.
list[str] | None
Alias appliqués uniquement à cet artifact lié dans le modèle enregistré. L’alias “latest” est toujours appliqué à la version la plus récente d’un artifact lié.
Exceptions levées
AssertionError: Si registered_model_name est un chemin ou si l’artifact de modèle ‘name’ est d’un type ne contenant pas la sous-chaîne ‘model’.ValueError: Si name contient des caractères spéciaux non valides.
méthode Run.log()
log pour journaliser les données des runs, comme des scalaires, des images, des vidéos,
des histogrammes, des graphiques et des tableaux. Voir Journaliser des objets et des médias pour
des extraits de code, des bonnes pratiques, etc.
Utilisation de base :
wandb.Table pour journaliser des données structurées. Voir le tutoriel Journaliser des tableaux, visualiser et interroger des données pour plus de détails.
W&B organise les métriques dont le nom contient une barre oblique (/) en sections nommées d’après le texte situé avant la dernière barre oblique. Par exemple, le résultat suivant comporte deux sections nommées “train” et “validate” :
run.log({"a/b/c": 1})
crée une section nommée “a”.
run.log() n’est pas conçu pour être appelé plus de quelques fois par seconde.
Pour des performances optimales, limitez votre journalisation à une fois toutes les N itérations,
ou collectez les données sur plusieurs itérations et journalisez-les en une seule étape.
Par défaut, chaque appel à log crée une nouvelle “étape”.
L’étape doit toujours augmenter, et il n’est pas possible de journaliser des données
sur une étape précédente. Vous pouvez utiliser n’importe quelle métrique comme axe des X dans les graphiques.
Voir Axes de journalisation personnalisés
pour plus de détails.
Dans de nombreux cas, il est préférable de traiter l’étape W&B comme
un horodatage plutôt que comme une étape d’entraînement.
wandb.Run.log() pour journaliser des données à la même étape à l’aide des paramètres step et commit.
Les exemples suivants sont tous équivalents :
Arguments
dict[str, Any]
Un
dict avec des clés str et des valeurs qui sont des objets Python sérialisables, y compris : int, float et string ; n’importe lequel des wandb.data_types ; des listes, tuples et tableaux NumPy d’objets Python sérialisables ; d’autres dict de cette structure.int | None
Le numéro d’étape à journaliser. Si
None, une étape implicite avec auto-incrémentation est utilisée. Voir les notes dans la description.bool | None
Si vrai, finalisez et téléversez l’étape. Si faux, accumulez les données pour l’étape. Voir les notes dans la description. Si
step est None, la valeur par défaut est commit=True ; sinon, la valeur par défaut est commit=False.Exceptions levées
wandb.Error: si la méthode est appelée avantwandb.init().ValueError: si des données non valides sont transmises.
Exemples
méthode Run.log_artifact()
Arguments
Artifact | StrPath
(str ou Artifact) Chemin vers le contenu de cet artifact,
sous l’une des formes suivantes :
/local/directory/local/directory/file.txts3://bucket/pathVous pouvez également transmettre un objet Artifact créé en appelantwandb.Artifact.
str | None
(str, facultatif) Nom d’artifact. Les noms valides peuvent prendre les formes suivantes :
- name:version
- name:alias
- digest Si ce paramètre n’est pas spécifié, la valeur par défaut est le nom de base du chemin, préfixé par l’ID du run actuel.
str | None
(str) Type d’artifact à journaliser, par exemple
dataset, modellist[str] | None
(list, facultatif) Alias à appliquer à cet artifact. La valeur par défaut est
["latest"]list[str] | None
(list, facultatif) Tags à appliquer à cet artifact, le cas échéant.
méthode Run.log_code()
.py.
Arguments
str | None
Le chemin relatif (par rapport à
os.getcwd()) ou absolu à partir duquel rechercher le code de manière récursive.str | None
(
str, facultatif) Le nom de notre artifact de code. Par défaut, l’artifact sera nommé source-$PROJECT_ID-$ENTRYPOINT_RELPATH. Dans certains cas, vous pouvez vouloir que plusieurs runs partagent le même artifact. Spécifier un nom vous permet de le faire.Callable[[str, str], bool] | Callable[[str], bool]
Une fonction qui accepte un chemin de fichier et, éventuellement, un chemin racine, puis renvoie
True s’il doit être inclus et False sinon. Par défaut, c’est lambda path, root: path.endswith(".py").Callable[[str, str], bool] | Callable[[str], bool]
Une fonction qui accepte un chemin de fichier et, éventuellement, un chemin racine, puis renvoie
True s’il doit être exclu et False sinon. Par défaut, une fonction exclut tous les fichiers des répertoires <root>/.wandb/ et <root>/wandb/.Exemples
méthode Run.log_model()
Arguments
StrPath
(str) Chemin vers le contenu de ce modèle,
pouvant prendre les formes suivantes :
/local/directory/local/directory/file.txts3://bucket/path
str | None
Nom à attribuer à l’artifact de modèle auquel le contenu du fichier sera ajouté. Par défaut, il s’agit du nom de base du chemin, précédé de l’ID du run actuel, s’il n’est pas spécifié.
list[str] | None
Alias à appliquer à l’artifact de modèle créé, avec
["latest"] comme valeur par défautExceptions levées
ValueError: Sinamecontient des caractères spéciaux non valides.
méthode Run.mark_preempting()
méthode Run.pin_config_keys()
Arguments
Sequence[str]
Noms des clés de configuration à épingler, correspondant aux clés définies via
run.config. Il s’agit de chaînes de clés exactes (les points et les barres obliques sont interprétés littéralement, et non comme des séparateurs de chemin). L’ordre est conservé et détermine l’ordre d’affichage.méthode Run.restore()
Arguments
str
Le nom du fichier.
str | None
Chemin facultatif vers un run à partir duquel récupérer des fichiers, c.-à-d.
username/project_name/run_id si wandb.init n’a pas été appelé, ce paramètre est requis.bool
Indique s’il faut télécharger le fichier même s’il existe déjà localement
str | None
Le répertoire dans lequel télécharger le fichier. Valeur par défaut : le répertoire courant, ou le répertoire du run si wandb.init a été appelé.
Exceptions levées
CommError: Si W&B ne peut pas se connecter au backend W&B.ValueError: Si le fichier est introuvable ou sirun_pathest introuvable.
méthode Run.save()
save, quelle que soit la valeur de policy. En particulier, les nouveaux fichiers ne sont pas ajoutés automatiquement.
glob_str est développé à l’aide du module glob de Python : voir
https://docs.python.org/3/library/glob.html pour la syntaxe exacte et le
comportement. En particulier, les caractères *, ? et [] sont traités comme des
métacaractères glob, et non comme des caractères littéraux, même s’ils apparaissent dans un
nom de fichier réel (par ex. “myfile[1].txt”). Si le nom de votre fichier contient
l’un de ces caractères et que vous souhaitez le faire correspondre littéralement plutôt
que comme un motif, échappez-le vous-même avec glob.escape()
avant d’appeler save, ou passez glob=False pour désactiver complètement l’expansion
des motifs et traiter glob_str comme un chemin littéral.
Vous pouvez fournir un base_path pour contrôler la structure de répertoires des fichiers téléversés. Il doit être un préfixe de glob_str, et la structure de répertoires située en dessous est conservée.
Lorsqu’un chemin absolu ou un glob est fourni sans base_path, un niveau de répertoire est conservé, comme dans l’exemple ci-dessus.
Les fichiers sont automatiquement dédupliqués : appeler save() plusieurs fois sur le même fichier sans le modifier ne le téléverse pas à nouveau.
Arguments
str | os.PathLike
Un chemin relatif ou absolu, ou un glob Unix.
str | os.PathLike | None
Un chemin utilisé pour déduire une structure de répertoires ; voir les exemples.
PolicyName
L’une des valeurs
live, now ou end.- live: téléverser le fichier à mesure qu’il change, en remplaçant la version précédente
- now: téléverser le fichier une seule fois, immédiatement
- end: téléverser le fichier à la fin du run
bool
Indique s’il faut traiter
glob_str comme un motif glob. La valeur par défaut est True pour assurer la compatibilité descendante. Définissez False pour traiter glob_str comme un chemin littéral, par exemple lorsque son nom contient des métacaractères de glob comme [, ], * ou ? que vous ne souhaitez pas voir interprétés comme un motif.méthode Run.status()
méthode Run.unwatch()
Arguments
torch.nn.Module | Sequence[torch.nn.Module] | None
Liste facultative de modèles PyTorch sur lesquels
watch a été appelé.méthode Run.upsert_artifact()
Arguments
Artifact | str
Chemin vers le contenu de cet artifact. Il peut prendre les formes suivantes :
/local/directory/local/directory/file.txts3://bucket/path
str | None
Nom d’artifact. Peut être préfixé par “entité/projet”. Par défaut, s’il n’est pas spécifié, il correspond au nom de base du chemin, précédé du run actuel ID. Les noms valides peuvent prendre les formes suivantes :
- name:version
- name:alias
- digest
str | None
Type d’artifact à journaliser. Exemples courants :
dataset, model.list[str] | None
Alias à appliquer à cet artifact. La valeur par défaut est
["latest"].str | None
Chaîne unique partagée par tous les jobs distribués. Si
None, la valeur par défaut est le nom du groupe du run.méthode Run.use_artifact()
download ou file sur l’objet renvoyé pour récupérer son contenu en local.
Arguments
str | Artifact
Le nom de l’artifact à utiliser. Il peut être préfixé
par le nom du projet dans lequel l’artifact a été enregistré
(“entité” ou “entité/projet”). Si aucune
entité n’est spécifiée dans le nom, l’entité du Run ou de la configuration de l’API est utilisée.
Les noms valides peuvent prendre les formes suivantes
- nom:version
- nom:alias
str | None
Le type d’artifact à utiliser.
list[str] | None
Alias à appliquer à cet artifact
str | None
Cet argument est obsolète et n’a aucun effet.
Exemples
méthode Run.use_model()
name.
Arguments
str
nom d’un artifact de modèle.
name doit correspondre au nom d’un artifact de modèle existant déjà enregistré. Peut être préfixé par entity/project/. Les noms valides peuvent prendre les formes suivantes- model_artifact_name:version
- model_artifact_name:alias
Exceptions levées
AssertionError: si l’artifact de modèlenameest d’un type qui ne contient pas la sous-chaînemodel.
méthode Run.watch()
Arguments
torch.nn.Module | Sequence[torch.nn.Module]
Un modèle unique ou une séquence de modèles à surveiller.
torch.F | None
La fonction de perte à optimiser (facultatif).
Literal['gradients', 'parameters', 'all'] | None
Indique s’il faut journaliser les « gradients », les « parameters » ou « all ». Définissez cette valeur sur None pour désactiver la journalisation. (par défaut=“gradients”).
int
Fréquence (en lots) de journalisation des gradients et des paramètres. (par défaut=1000)
int | None
Index utilisé pour suivre plusieurs modèles avec
wandb.watch. (par défaut=None)bool
Indique s’il faut journaliser le graphe de calcul du modèle. (par défaut=False)
Exceptions levées
ValueError: Siwandb.init()n’a pas été appelé ou si l’un des modèles n’est pas une instance detorch.nn.Module.
méthode Run.write_logs()
write_logs pour écrire directement du texte dans l’onglet Logs, au lieu de
vous fier à la capture automatique de stdout/stderr. Les appels effectués après la fin du run sont
simplement ignorés.
Vous pouvez utiliser le paramètre capture_loggers, qui s’intègre au module
logging de Python.
Arguments
str
Le texte à écrire. Un saut de ligne final est ajouté s’il n’est pas déjà présent.