wandb.Table を使用します。このガイドでは、次の方法を学びます。
表を作成する
wandb.Table コンストラクタは、次の 2 つの方法のいずれかで使用します。
-
行のリスト:
名前付きの列とデータ行をログします。たとえば、次のコード スニペットは 2 行 3 列の表を生成します。
-
Pandas DataFrame:
wandb.Table(dataframe=my_df)を使用して DataFrame をログします。列名は DataFrame から抽出されます。
既存の配列またはデータフレームから
データを追加する
- 行を追加する:
table.add_data("3a", "3b", "3c")。新しい行はリストとして表現されない点に注意してください。行がリスト形式の場合は、スター記法*を使用してリストを位置引数に展開します:table.add_data(*my_row_list)。行には、表の列数と同じ数のエントリが含まれている必要があります。 - 列を追加する:
table.add_column(name="col_name", data=col_data)。col_dataの長さは、表の現在の行数と同じである必要があります。ここで、col_dataにはリストまたは NumPy の NDArray を使用できます。
データを段階的に追加する
再開したrunにデータを追加する
データを取得する
- 行イテレータ:
for ndx, row in table.iterrows(): ...のように Table の行イテレータを使用して、データの各行を効率的に反復処理できます。 - 列を取得する:
table.get_column("col_name")を使用してデータの列を取得します。必要に応じて、convert_to="numpy"を渡すと、その列をプリミティブ型の NumPy NDArray に変換できます。これは、列にwandb.Imageのようなメディアタイプが含まれている場合に、元のデータへ直接アクセスするのに便利です。
テーブルを保存する
表を run にログする
wandb.Run.log() を使用して、次のように表を run に保存します。
200,000 行を超えてログするには、次のように制限を上書きできます。
wandb.Table.MAX_ARTIFACT_ROWS = Xただし、これにより、UI でのクエリが遅くなるなどのパフォーマンス上の問題が発生する可能性があります。プログラムから Tables にアクセスする
表を可視化する
Artifact テーブル
artifact.add() を使用します。これは、一度だけログし、その後の run から参照したいデータセットがある場合に便利です。
Artifact テーブルを結合する
wandb.JoinedTable(table_1, table_2, join_key) を使って結合できます。
artifact コンテキストで以前にログした 2 つの Table を結合するには、それらを artifact から取得し、その結果を新しい Table にまとめます。
たとえば、次のコード例は、
'original_songs' という名前の元の楽曲の Table と、同じ楽曲の合成版を含む 'synth_songs' という名前の別の Table を読み取る方法を示しています。このコードは 2 つのテーブルを "song_id" で結合し、結果のテーブルを新しい W&B Table としてアップロードします。