> ## 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.

> Importez des fichiers CSV dans W&B sous forme de Tables et d’artifacts pour les visualiser, les comparer et les analyser dans des tableaux de bord.

# Suivre des fichiers CSV avec des expériences

Utilisez la bibliothèque Python W\&B pour journaliser un fichier CSV et le visualiser dans un [tableau de bord W\&B](/fr/products/wandb/track/workspaces). Les tableaux de bord W\&B centralisent l’organisation et la visualisation des résultats de vos modèles de machine learning. Cette approche est particulièrement utile si vous disposez d’un [fichier CSV contenant des informations sur des expériences de machine learning antérieures](#import-and-log-your-csv-of-experiments) qui n’ont pas été journalisées dans W\&B, ou d’un [fichier CSV contenant un jeu de données](#import-and-log-your-dataset-csv-file).

<h2 id="import-and-log-your-dataset-csv-file">
  Importer et journaliser le fichier CSV de votre jeu de données
</h2>

Nous vous recommandons d’utiliser W\&B Artifacts pour faciliter la réutilisation du contenu du fichier CSV.

1. Pour commencer, importez votre fichier CSV. Dans l’extrait de code suivant, remplacez le nom de fichier `iris.csv` par celui de votre fichier CSV :

```python theme={"system"}
import wandb
import pandas as pd

# Lire le fichier CSV et le charger dans un nouveau DataFrame
new_iris_dataframe = pd.read_csv("iris.csv")
```

2. Convertissez le fichier CSV en W\&B Table afin d’exploiter les [tableaux de bord W\&B](/fr/products/wandb/track/workspaces).

```python theme={"system"}
# Convertir le DataFrame en tableau W&B
iris_table = wandb.Table(dataframe=new_iris_dataframe)
```

3. Ensuite, créez un artifact W\&B et ajoutez-y le tableau :

```python theme={"system"}
# Ajouter le tableau à un artifact pour porter la limite
# de lignes à 200000 et en faciliter la réutilisation
iris_table_artifact = wandb.Artifact("iris_artifact", type="dataset")
iris_table_artifact.add(iris_table, "iris_table")

# Journaliser le fichier CSV brut dans un artifact pour conserver nos données
iris_table_artifact.add_file("iris.csv")
```

Pour en savoir plus sur W\&B Artifacts, consultez le [chapitre Artifacts](/fr/products/wandb/artifacts).

4. Enfin, démarrez un nouveau run W\&B avec `wandb.init()` pour suivre et consigner vos données dans W\&B :

```python theme={"system"}
# Démarrer un run W&B pour journaliser des données
with wandb.init(project="tables-walkthrough") as run:

    # Journaliser le tableau dans un run pour le visualiser…
    run.log({"iris": iris_table})

    # … et le journaliser en tant qu’artifact pour relever la limite de lignes !
    run.log_artifact(iris_table_artifact)
```

L’API `wandb.init()` lance un nouveau processus en arrière-plan pour journaliser des données dans un run, puis synchronise ces données avec wandb.ai (par défaut). Consultez les visualisations en temps réel dans le tableau de bord de votre workspace W\&B. L’image suivante montre le résultat produit par l’extrait de code de démonstration.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/import_csv_tutorial.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=51c360ae2d9229ad18a76d95901c8fca" alt="Fichier CSV importé dans le tableau de bord W&B" width="2052" height="2114" data-path="products/wandb/_media/import_csv_tutorial.png" />
</Frame>

Voici le script complet reprenant les extraits de code précédents :

```python theme={"system"}
import wandb
import pandas as pd

# Charger le fichier CSV dans un nouveau DataFrame
new_iris_dataframe = pd.read_csv("iris.csv")

# Convertir le DataFrame en tableau W&B (W&B Table)
iris_table = wandb.Table(dataframe=new_iris_dataframe)

# Ajouter le tableau à un artifact pour porter la limite
# de lignes à 200000 et faciliter sa réutilisation
iris_table_artifact = wandb.Artifact("iris_artifact", type="dataset")
iris_table_artifact.add(iris_table, "iris_table")

# Journaliser le fichier CSV brut dans un artifact pour conserver les données
iris_table_artifact.add_file("iris.csv")

# Démarrer un run W&B pour journaliser des données
with wandb.init(project="tables-walkthrough") as run:

    # Journaliser le tableau dans un run pour le visualiser…
    run.log({"iris": iris_table})

    # … et le journaliser en tant qu’artifact pour augmenter la limite de lignes disponible !
    run.log_artifact(iris_table_artifact)
```

<h2 id="import-and-log-your-csv-of-experiments">
  Importer et journaliser votre fichier CSV d’expériences
</h2>

Dans certains cas, les détails de vos expériences se trouvent dans un fichier CSV. Ces fichiers CSV contiennent généralement les informations suivantes :

* Un nom pour le run de l’expérience
* Des [notes](/fr/products/wandb/runs#add-a-note-to-a-run) initiales
* Des [tags](/fr/products/wandb/runs/tags) pour différencier les expériences
* Les configurations nécessaires à votre expérience (ce qui vous permet en outre d’utiliser notre fonctionnalité d’[optimisation des hyperparamètres avec Sweeps](/fr/products/wandb/sweeps)).

| Expérience | Nom du modèle | Notes | Tags | Nombre de couches | Précision finale (entraînement) | Précision finale (validation) | Pertes d’entraînement |
| - | - | - | - | - | - | - | - |
| Expérience 1 | mnist-300-layers | Surapprentissage bien trop important sur les données d’entraînement | \[latest] | 300 | 0.99 | 0.90 | \[0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| Expérience 2 | mnist-250-layers | Meilleur modèle actuel | \[prod, best] | 250 | 0.95 | 0.96 | \[0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| Expérience 3 | mnist-200-layers | Moins bon que le modèle de référence. À déboguer | \[debug] | 200 | 0.76 | 0.70 | \[0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| ... | ... | ... | ... | ... | ... | ... | |
| Expérience N | mnist-X-layers | NOTES | ... | ... | ... | ... | \[..., ...] |

W\&B peut convertir des fichiers CSV d’expériences en runs d’expérience W\&B. Les extraits de code et le script suivants montrent comment importer et journaliser votre fichier CSV d’expériences :

1. Pour commencer, lisez votre fichier CSV et convertissez-le en DataFrame Pandas. Remplacez `"experiments.csv"` par le nom de votre fichier CSV :

```python theme={"system"}
import wandb
import pandas as pd

FILENAME = "experiments.csv"
loaded_experiment_df = pd.read_csv(FILENAME)

PROJECT_NAME = "Converted Experiments"

EXPERIMENT_NAME_COL = "Experiment"
NOTES_COL = "Notes"
TAGS_COL = "Tags"
CONFIG_COLS = ["Num Layers"]
SUMMARY_COLS = ["Final Train Acc", "Final Val Acc"]
METRIC_COLS = ["Training Losses"]

# Mettre en forme le DataFrame Pandas pour le manipuler plus facilement
for i, row in loaded_experiment_df.iterrows():
    run_name = row[EXPERIMENT_NAME_COL]
    notes = row[NOTES_COL]
    tags = row[TAGS_COL]

    config = {}
    for config_col in CONFIG_COLS:
        config[config_col] = row[config_col]

    metrics = {}
    for metric_col in METRIC_COLS:
        metrics[metric_col] = row[metric_col]

    summaries = {}
    for summary_col in SUMMARY_COLS:
        summaries[summary_col] = row[summary_col]
```

2. Ensuite, démarrez un nouveau run W\&B pour suivre et consigner vos données dans W\&B avec [`wandb.init()`](/fr/products/wandb/ref/python/functions/init) :

   ```python theme={"system"}
   with wandb.init(
       project=PROJECT_NAME, name=run_name, tags=tags, notes=notes, config=config
   ) as run:
   ```

Pendant l’exécution d’une expérience, vous pouvez journaliser chaque valeur de vos métriques afin de pouvoir les consulter, les interroger et les analyser dans W\&B. Pour cela, utilisez la commande [`run.log()`](/fr/products/wandb/ref/python/experiments/run#method-runlog) :

```python theme={"system"}
run.log({key: val})
```

Vous pouvez également journaliser une métrique de synthèse finale pour définir le résultat du run à l’aide de l’API [`define_metric`](/fr/products/wandb/ref/python/experiments/run#define_metric). Cet exemple ajoute les métriques de synthèse à notre run avec `run.summary.update()` :

```python theme={"system"}
run.summary.update(summaries)
```

Pour en savoir plus sur les métriques de synthèse, consultez [Journaliser des métriques de synthèse](/fr/products/wandb/track/log/log-summary).

Voici le script d’exemple complet qui convertit le tableau d’exemple ci-dessus en [tableau de bord W\&B](/fr/products/wandb/track/workspaces) :

```python theme={"system"}
FILENAME = "experiments.csv"
loaded_experiment_df = pd.read_csv(FILENAME)

PROJECT_NAME = "Converted Experiments"

EXPERIMENT_NAME_COL = "Experiment"
NOTES_COL = "Notes"
TAGS_COL = "Tags"
CONFIG_COLS = ["Num Layers"]
SUMMARY_COLS = ["Final Train Acc", "Final Val Acc"]
METRIC_COLS = ["Training Losses"]

for i, row in loaded_experiment_df.iterrows():
    run_name = row[EXPERIMENT_NAME_COL]
    notes = row[NOTES_COL]
    tags = row[TAGS_COL]

    config = {}
    for config_col in CONFIG_COLS:
        config[config_col] = row[config_col]

    metrics = {}
    for metric_col in METRIC_COLS:
        metrics[metric_col] = row[metric_col]

    summaries = {}
    for summary_col in SUMMARY_COLS:
        summaries[summary_col] = row[summary_col]

    with  wandb.init(
        project=PROJECT_NAME, name=run_name, tags=tags, notes=notes, config=config
    ) as run:

        for key, val in metrics.items():
            if isinstance(val, list):
                for _val in val:
                    run.log({key: _val})
            else:
                run.log({key: val})

        run.summary.update(summaries)
```


## Related topics

- [Suivre des fichiers externes](/fr/products/wandb/artifacts/track-external-files.md)
