
埋め込みのサンプル
実際に試す前に、以下のリソースで Embedding Projector の動作を確認できます。Hello world
この最小構成の例では、埋め込みをログしてプロジェクターで表示するのに必要な最小限のコードを紹介します。W&B では、wandb.Table クラスを使用して埋め込みをログできます。次の例では、それぞれ 5 次元からなる 3 つの埋め込みを使用します。

Digits MNIST
次の例では、より高次元のデータとより豊富なオーバーレイを使用した、より実践的なワークフローを紹介します。前の例では埋め込みをログする基本的な仕組みを示しましたが、実際にはさらに多くの次元やサンプルを扱うのが一般的です。ここでは、SciKit-Learn で提供されている MNIST Digits データセット (UCI ML hand-written digits dataset) を例に取り上げます。このデータセットには 1,797 件のレコードが含まれ、各レコードは 64 次元です。これは 10 クラス分類のユースケースです。入力データを画像に変換して可視化することもできます。
ログのオプション
以下のセクションでは、埋め込みデータを W&B にログする際にサポートされるデータ構造について説明します。埋め込みは、次のいくつかの形式でログできます。- 単一の埋め込み列: データがすでにマトリクスのような形式になっている場合がよくあります。その場合は、単一の埋め込み列を作成できます。セルの値のデータタイプには
list[int]、list[float]、np.ndarrayのいずれかを使用できます。 - 複数の数値列: 前述の 2 つのサンプルではこの方法を使用しており、次元ごとに列を作成しています。W&B は、セルの値として Python の
intまたはfloatを受け入れます。


wandb.Table(dataframe=df)を使用して、データフレームから直接作成します。wandb.Table(data=[...], columns=[...])を使用して、データのリストから直接作成します。- 表を 1 行ずつ段階的に構築します (コード内でループを使用している場合に便利です)。
table.add_data(...)を使用して表に行を追加します。 - 表に埋め込み列を追加します (埋め込み形式の予測のリストがある場合に便利です):
table.add_col("col_name", ...)。 - 計算列を追加します (表の各行に適用したい関数やモデルがある場合に便利です):
table.add_computed_columns(lambda row, ndx: {"embedding": model.predict(row)})。
プロットのオプション
埋め込みをログした後、その射影方法とレンダリング方法を調整できます。2D Projection を選択したら、歯車アイコンをクリックしてレンダリング設定を編集します。対象の列の選択 (前のセクションを参照) に加えて、使用するアルゴリズムとそのパラメーターも選択できます。次の画像は、UMAP と t-SNE のパラメーターを示しています。

3 つのアルゴリズムのいずれでも、W&B はデータを 1,000 行・50 次元のランダムなサブセットにダウンサンプリングします。