> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Créez une expérience W&B à l’aide du SDK Python pour suivre l’initialisation des runs, les hyperparamètres et la journalisation des métriques.

# Créer une expérience

Utilisez le SDK Python W\&B pour suivre vos expériences de machine learning. Vous pouvez ensuite examiner les résultats dans un tableau de bord interactif ou exporter vos données vers Python afin d’y accéder par programmation avec l’[API publique de W\&B](/fr/products/wandb/ref/python/public-api).

Ce guide explique comment utiliser les éléments de base de W\&B pour créer une expérience W\&B.

<h2 id="how-to-create-a-wb-experiment">
  Comment créer une expérience W\&B
</h2>

Créez une expérience W\&B en quatre étapes :

1. [Initialiser un run W\&B](#initialize-a-wb-run)
2. [Capturer un dictionnaire d’hyperparamètres](#capture-a-dictionary-of-hyperparameters)
3. [Consigner des métriques dans votre boucle d’entraînement](#log-metrics-inside-your-training-loop)
4. [Journaliser un artifact dans W\&B](/fr/products/wandb/track/create-an-experiment#log-an-artifact-to-w%26b)

<h3 id="initialize-a-wb-run">
  Initialiser un run W\&B
</h3>

Utilisez [`wandb.init()`](/fr/products/wandb/ref/python/functions/init) pour créer un run W\&B.

L’extrait suivant crée un run dans un projet W\&B nommé `“cat-classification”`, avec la description `“My first experiment”` pour faciliter l’identification de ce run. Les tags `“baseline”` et `“paper1”` permettent de se rappeler que ce run est une expérience de référence destinée à une future publication.

```python theme={"system"}
import wandb

with wandb.init(
    project="cat-classification",
    notes="My first experiment",
    tags=["baseline", "paper1"],
) as run:
    ...
```

`wandb.init()` renvoie un objet [Run](/fr/products/wandb/ref/python/experiments/run).

<Note>
  Remarque : si le projet existe déjà lorsque vous appelez `wandb.init()`, les runs sont ajoutés à ce projet existant. Par exemple, si vous disposez déjà d’un projet nommé `“cat-classification”`, ce projet est conservé et n’est pas supprimé : un nouveau run y est simplement ajouté.
</Note>

<h3 id="capture-a-dictionary-of-hyperparameters">
  Capturer un dictionnaire d’hyperparamètres
</h3>

Enregistrez un dictionnaire d’hyperparamètres, comme le taux d’apprentissage ou le type de modèle. Les paramètres du modèle que vous capturez dans la configuration vous seront utiles par la suite pour organiser vos résultats et les interroger.

```python theme={"system"}
with wandb.init(
    ...,
    config={"epochs": 100, "learning_rate": 0.001, "batch_size": 128},
) as run:
    ...
```

Pour plus d’informations sur la configuration d’une expérience, voir [Configurer des expériences](/fr/products/wandb/track/config).

<h3 id="log-metrics-inside-your-training-loop">
  Consigner des métriques dans votre boucle d’entraînement
</h3>

Appelez [`run.log()`](/fr/products/wandb/ref/python/experiments/run#method-runlog) pour consigner des métriques sur chaque étape d’entraînement, comme la précision et la perte.

```python theme={"system"}
model, dataloader = get_model(), get_data()

for epoch in range(run.config["epochs"]):
    for batch in dataloader:
        loss, accuracy = model.training_step()
        run.log({"accuracy": accuracy, "loss": loss})
```

Pour plus d’informations sur les différents types de données que vous pouvez journaliser avec W\&B, consultez [Journaliser des objets et des médias](/fr/products/wandb/track/log).

<h3 id="log-an-artifact-to-wb">
  Journaliser un artifact dans W\&B
</h3>

Vous pouvez aussi, si vous le souhaitez, journaliser un artifact W\&B. Les artifacts simplifient la gestion des versions de vos jeux de données et de vos modèles.

```python theme={"system"}
# Vous pouvez enregistrer n’importe quel fichier, voire un répertoire. Dans cet exemple, on suppose
# que le modèle dispose d’une méthode save() qui génère un fichier ONNX.
model.save("path_to_model.onnx")
run.log_artifact("path_to_model.onnx", name="trained-model", type="model")
```

En savoir plus sur les [Artifacts](/fr/products/wandb/artifacts) ou sur la gestion des versions de modèles dans le [registre](/fr/products/registry).

<h3 id="putting-it-all-together">
  Récapitulatif
</h3>

Voici le script complet, qui regroupe les extraits de code précédents :

```python theme={"system"}
import wandb

with wandb.init(
    project="cat-classification",
    notes="",
    tags=["baseline", "paper1"],
    # Enregistrer les hyperparamètres du run.
    config={"epochs": 100, "learning_rate": 0.001, "batch_size": 128},
) as run:
    # Configurer le modèle et les données.
    model, dataloader = get_model(), get_data()

    # Lancer l'entraînement en journalisant les métriques afin de visualiser les performances du modèle.
    for epoch in range(run.config["epochs"]):
        for batch in dataloader:
            loss, accuracy = model.training_step()
            run.log({"accuracy": accuracy, "loss": loss})

    # Téléverser le modèle entraîné sous forme d'artifact.
    model.save("path_to_model.onnx")
    run.log_artifact("path_to_model.onnx", name="trained-model", type="model")
```

<h2 id="next-steps-visualize-your-experiment">
  Étapes suivantes : visualiser votre expérience
</h2>

Utilisez le workspace de votre projet pour organiser et visualiser les résultats de vos modèles de machine learning. Vous pouvez créer des graphiques interactifs, tels que des [graphiques de coordonnées parallèles](/fr/products/wandb/app/features/panels/parallel-coordinates), des [analyses de l’importance des paramètres](/fr/products/wandb/app/features/panels/parameter-importance) et [d’autres types de graphiques](/fr/products/wandb/app/features/panels).

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/quickstart_dashboard_example.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=cdd010a365825115c5a34de76e5ffa6b" alt="Exemple de workspace Sweeps du démarrage rapide" width="4172" height="3046" data-path="products/wandb/_media/quickstart_dashboard_example.png" />
</Frame>

Pour plus d’informations sur la consultation des expériences et de runs spécifiques, voir [Afficher les résultats des expériences](/fr/products/wandb/track/workspaces).

<h2 id="best-practices">
  Bonnes pratiques
</h2>

Voici quelques recommandations à prendre en compte lorsque vous créez des expériences :

* **Gérer les runs avec un gestionnaire de contexte** : utilisez `wandb.init()` dans une instruction `with` pour terminer automatiquement le run à la fin de l’exécution du code ou si celui-ci lève une exception.
  * Dans les notebooks Jupyter, vous préférerez peut-être gérer vous-même l’objet run. Dans ce cas, appelez `finish()` pour le marquer comme terminé :

    ```python theme={"system"}
    # Dans une cellule de notebook :
    run = wandb.init()

    # Dans une autre cellule :
    run.finish()
    ```
* **Configuration** : suivez les hyperparamètres, l’architecture du modèle, les informations sur le jeu de données et toutes les autres valeurs nécessaires pour reproduire votre modèle. Pour plus d’informations, voir [Afficher la configuration dans la section Overview d’un run dans l’application W\&B](/fr/products/wandb/track/config#view-config-values-in-the-w\&b-app).
* **Projet** : utilisez des [projets](/fr/products/wandb/track/project-page) pour centraliser vos expériences en un seul emplacement, où vous pouvez visualiser les résultats, comparer les runs, afficher et télécharger des artifacts, créer des automatisations, et bien plus encore.
* **Notes** : ajoutez des notes pour décrire l’objectif d’un run, par exemple `baseline model` ou `tuned hyperparameters`. Vous pourrez modifier ces notes ultérieurement depuis l’aperçu du run dans l’application W\&B.
* **Types de job** : [ajoutez des types de job à vos runs](/fr/products/wandb/runs/grouping#organize-runs-by-job-type) pour organiser et filtrer les runs par tâche, par exemple `train`, `test` ou `inference`.
* **Tags** : [ajoutez des tags aux runs](/fr/products/wandb/runs/tags) pour les étiqueter avec des caractéristiques ou des attributs qui ne ressortent pas forcément des métriques journalisées ou des artifacts.

L’exemple suivant montre comment initialiser un run W\&B en appliquant ces bonnes pratiques :

```python theme={"system"}
import wandb

config = {
    "learning_rate": 0.01,
    "momentum": 0.2,
    "architecture": "CNN",
    "dataset_id": "cats-0192",
}

with wandb.init(
    project="detect-cats",
    notes="tweak baseline",
    tags=["baseline", "paper1"],
    config=config,
) as run:
    ...
```

Pour en savoir plus sur les paramètres disponibles, consultez [`wandb.init()`](/fr/products/wandb/ref/python/functions/init) dans le [guide de référence du SDK Python](/fr/products/wandb/ref/python).


## Related topics

- [Run](/fr/products/wandb/ref/python/experiments/run.md)
