wandb.Table pour journaliser des données afin de les visualiser et d’effectuer des requêtes avec W&B. Dans ce guide, découvrez comment :
Créer des Tables
wandb.Table de l’une des deux façons suivantes :
-
Liste de lignes :
Journalisez des colonnes nommées et des lignes de données. Par exemple, l’extrait de code suivant génère un tableau avec deux lignes et trois colonnes :
-
Pandas DataFrame : Journalisez un DataFrame avec
wandb.Table(dataframe=my_df). Les noms de colonnes seront extraits du DataFrame.
À partir d’un tableau ou d’un dataframe existants
Ajouter des données
- Ajouter une ligne :
table.add_data("3a", "3b", "3c"). Notez que la nouvelle ligne n’est pas représentée sous forme de liste. Si votre ligne est au format liste, utilisez la notation étoile,*, pour développer la liste en arguments positionnels :table.add_data(*my_row_list). La ligne doit contenir le même nombre d’entrées que le tableau comporte de colonnes. - Ajouter une colonne :
table.add_column(name="col_name", data=col_data). Notez que la longueur decol_datadoit être égale au nombre actuel de lignes du tableau. Ici,col_datapeut être une liste ou un tableau NumPy (NDArray).
Ajout incrémentiel de données
Ajout de données à des runs repris
Récupérer des données
- Itérateur de lignes : Utilisez l’itérateur de lignes de Table, comme
for ndx, row in table.iterrows(): ..., pour parcourir efficacement les lignes de données. - Obtenir une colonne : Récupérez une colonne de données avec
table.get_column("col_name"). Pour plus de commodité, vous pouvez spécifierconvert_to="numpy"pour convertir la colonne en tableau NumPy (NDArray) de valeurs primitives. Cela est utile si votre colonne contient des types de médias commewandb.Image, afin d’accéder directement aux données sous-jacentes.
Enregistrer des tableaux
Consigner un tableau dans un run
wandb.Run.log() pour enregistrer votre tableau dans le run, comme suit :
Pour enregistrer plus de 200 000 lignes, vous pouvez redéfinir cette limite comme suit :
wandb.Table.MAX_ARTIFACT_ROWS = XCependant, cela entraînera probablement des problèmes de performances, comme des requêtes plus lentes, dans l’UI.Accéder aux Tables de façon programmatique
Visualiser les Tables
Tableaux d’Artifacts
artifact.add() pour journaliser des tableaux dans la section Artifacts de votre run plutôt que dans le Workspace. Cela peut être utile si vous avez un jeu de données que vous souhaitez journaliser une seule fois, puis utiliser comme référence pour de futurs runs.
Joindre des tableaux d’Artifact
wandb.JoinedTable(table_1, table_2, join_key).
Pour joindre deux tableaux que vous avez enregistrés précédemment dans le contexte d’un Artifact, récupérez-les depuis l’Artifact, puis combinez le résultat dans un nouveau tableau.
Par exemple, l’exemple de code suivant montre comment lire un tableau de chansons originales appelé
'original_songs' et un autre tableau contenant des versions synthétisées de ces mêmes chansons appelé 'synth_songs'. Le code joint les deux tableaux sur "song_id" et téléverse le tableau obtenu en tant que nouveau tableau W&B :