
Embedding の例
ハローワールド
W&B を使用すると、wandb.Table
クラスを使用して Embeddings をログできます。以下は、5 次元からなる 3 つの Embeddings の例です。
2D Projection
を選択して Embeddings を 2 次元でプロットすることができます。デフォルトで賢明な設定が自動的に選択されますが、設定メニューから簡単に上書きできます。この例では、利用可能な 5 つの数値次元をすべて自動的に使用しています。

数字のMNIST
上記の例では Embeddings の基本的なログ方法を示しましたが、通常はもっと多くの次元とサンプルを扱います。UCI の手書き数字データセット UCI ML hand-written digits datasetを使って、SciKit-Learn を通じて提供される MNIST 数字データセットを考えてみましょう。このデータセットには 64 次元を持つ 1797 のレコードが含まれています。この問題は10クラスの分類ユースケースです。また、可視化のために入力データを画像に変換することもできます。2D Projection
を選択することで、Embedding の定義、色付け、アルゴリズム(PCA, UMAP, t-SNE)、アルゴリズムのパラメータ、さらにはオーバーレイ(この場合、点の上にマウスを置くと画像が表示されます)の設定を行うことができます。この特定のケースでは、すべて「スマートデフォルト」が設定されており、2D Projection
をクリックするだけで非常に類似したものが見えるはずです。(この例を試してみてください)。

ログオプション
Embeddings はさまざまなフォーマットでログすることができます:- 単一の埋め込みカラム: データがすでに「行列」形式になっていることが多いです。この場合、カラムのデータ型は
list[int]
,list[float]
, またはnp.ndarray
にすることができます。 - 複数の数値カラム: 上記の2つの例では、各次元に対してカラムを作成するこの方法を使用します。現在、セルには Python の
int
またはfloat
が受け入れられます。


- データフレーム から直接
wandb.Table(dataframe=df)
を使用して - データのリスト から直接
wandb.Table(data=[...], columns=[...])
を使用して - 行単位で段階的に テーブルを構築する(コード内にループがある場合に最適)。
table.add_data(...)
を使ってテーブルに行を追加します。 - テーブルに 埋め込みカラム を追加する(Embedding の形式で予測のリストがある場合に最適):
table.add_col("col_name", ...)
- 計算済みカラム を追加する(関数やモデルをテーブル全体に適用したい場合に最適):
table.add_computed_columns(lambda row, ndx: {"embedding": model.predict(row)})
プロットオプション
2D Projection
を選択した後、ギアアイコンをクリックしてレンダリング設定を編集できます。上記のカラムの選択に加えて、興味のあるアルゴリズム(および必要なパラメータ)を選ぶことができます。以下に、UMAP と t-SNE の各パラメータが表示されています。


注: 現在、すべての 3 つのアルゴリズムに対して、ランダムなサブセット 1000 行と 50 次元にダウンサンプリングされます。