Panels
ワークスペース パネルの 可視化 を使用して、ログに記録された データ を キー ごとに探索し、 ハイパーパラメータ と出力 メトリクス の関係を 可視化 することができます。
ワークスペース のモード
W&B の プロジェクト は、2つの異なる ワークスペース モードをサポートしています。 ワークスペース 名の横にあるアイコンは、そのモードを示しています。
アイコン |
ワークスペース モード |
 |
自動 ワークスペース は、 プロジェクト で ログ されたすべての キー に対して パネル を自動的に生成します。 自動 ワークスペース を選択する:- プロジェクト の利用可能なすべての データを 可視化 して、すぐに開始したい場合。
- ログ に記録する キー の数が少ない小規模な プロジェクト の場合。
- より広範な 分析 を行う場合。
自動 ワークスペース から パネル を削除した場合、クイック 追加を使用して再作成できます。 |
 |
手動 ワークスペース は、空白の状態から始まり、 ユーザー が意図的に追加した パネル のみを表示します。 手動 ワークスペース を選択する:- プロジェクト で ログ された キー の一部のみを重視する場合。
- より集中的な 分析 を行う場合。
- ワークスペース のパフォーマンスを向上させ、あまり役に立たない パネル の読み込みを回避する場合。
クイック 追加を使用して、手動 ワークスペース とそのセクションに役立つ 可視化 をすばやく簡単に追加できます。 |
ワークスペース での パネル の生成方法を変更するには、ワークスペース をリセットします。
ワークスペース への変更を元に戻す
ワークスペース への変更を元に戻すには、[元に戻す] ボタン (左を指す矢印) をクリックするか、CMD + Z (macOS) または CTRL + Z (Windows / Linux) を入力します。
ワークスペース のリセット
ワークスペース をリセットするには:
- ワークスペース の上部にあるアクション メニュー
...
をクリックします。
- ワークスペース をリセット をクリックします。
ワークスペース のレイアウトを 設定 するには、 ワークスペース の上部にある Settings をクリックし、次に Workspace layout をクリックします。
- 検索中に空のセクションを非表示にする (デフォルトでオン)
- パネル をアルファベット順に並べ替える (デフォルトでオフ)
- セクション構成 (デフォルトでは最初の プレフィックス でグループ化)。 この 設定 を変更するには:
- 南京錠アイコンをクリックします。
- セクション内の パネル をグループ化する方法を選択します。
ワークスペース の折れ線 プロット のデフォルトを 設定 するには、折れ線 プロット を参照してください。
セクションのレイアウトを 設定 するには、歯車アイコンをクリックし、次に Display preferences をクリックします。
- ツールチップ で色付きの run 名をオンまたはオフにする (デフォルトでオン)
- コンパニオン チャート のツールチップにハイライトされた run のみを表示する (デフォルトでオフ)
- ツールチップ に表示される run の数 (単一の run 、すべての run 、または Default)
- プライマリ チャート のツールチップ に完全な run 名を表示する (デフォルトでオフ)
パネル をフルスクリーン モード で表示する
フルスクリーン モード では、 run セレクター が表示され、 パネル は、通常 1000 バケットではなく、10,000 バケットの高精度サンプリング モード プロット を使用します。
パネル をフルスクリーン モード で表示するには:
- パネル の上にマウスを置きます。
- パネル のアクション メニュー
...
をクリックし、次にファインダーまたは正方形の4つの角を示すアウトラインのようなフルスクリーン ボタンをクリックします。

- フルスクリーン モード で表示中に パネル を共有すると、表示されるリンクは自動的にフルスクリーン モード で開きます。
フルスクリーン モード から パネル の ワークスペース に戻るには、 ページ の上部にある左向きの矢印をクリックします。
パネル の追加
このセクションでは、 ワークスペース に パネル を追加するさまざまな方法を示します。
パネル を手動で追加する
グローバル またはセクション レベルで、 ワークスペース に パネル を1つずつ追加します。
- パネル をグローバルに追加するには、 パネル 検索フィールドの近くにあるコントロール バーの Add panels をクリックします。
- 代わりに パネル をセクションに直接追加するには、セクションのアクション
...
メニューをクリックし、次に + Add panels をクリックします。
- チャート など、追加する パネル のタイプを選択します。 パネル の 設定 詳細が表示され、デフォルトが選択されています。
- 必要に応じて、 パネル とその表示 設定 をカスタマイズします。 設定 オプションは、選択する パネル のタイプによって異なります。 各タイプの パネル のオプションの詳細については、以下の関連セクション (たとえば、折れ線 プロット または棒グラフ) を参照してください。
- Apply をクリックします。
パネル をクイック追加する
Quick add を使用して、選択した キー ごとに パネル をグローバル またはセクション レベルで自動的に追加します。
削除された パネル がない自動 ワークスペース の場合、 ワークスペース にはすでに ログ されたすべての キー の パネル が含まれているため、Quick add オプションは表示されません。 Quick add を使用して、削除した パネル を再度追加できます。
- Quick add を使用して パネル をグローバルに追加するには、 パネル 検索フィールドの近くにあるコントロール バーの Add panels をクリックし、次に Quick add をクリックします。
- Quick add を使用して パネル をセクションに直接追加するには、セクションのアクション
...
メニューをクリックし、Add panels をクリックして、次に Quick add をクリックします。
- パネル のリストが表示されます。 チェックマークが付いている各 パネル は、すでに ワークスペース に含まれています。
- 利用可能なすべての パネル を追加するには、リストの上部にある Add panels ボタンをクリックします。 Quick Add リストが閉じ、新しい パネル が ワークスペース に表示されます。
- リストから個々の パネル を追加するには、 パネル の行の上にマウスを置き、次に Add をクリックします。 追加する パネル ごとにこの手順を繰り返し、右上にある X をクリックして Quick Add リストを閉じます。 新しい パネル が ワークスペース に表示されます。
- 必要に応じて、 パネル の 設定 をカスタマイズします。
パネル の共有
このセクションでは、リンクを使用して パネル を共有する方法を示します。
リンクを使用して パネル を共有するには、次のいずれかを実行します。
- パネル をフルスクリーン モード で表示しているときに、ブラウザから URL をコピーします。
- アクション メニュー
...
をクリックし、Copy panel URL を選択します。
リンクを ユーザー または チーム と共有します。 ユーザー がリンクに アクセス すると、 パネル がフルスクリーン モード で開きます。
フルスクリーン モード から パネル の ワークスペース に戻るには、 ページ の上部にある左向きの矢印をクリックします。
プログラムで パネル のフルスクリーン リンクを作成する
オートメーション の作成など、特定の状況では、 パネル のフルスクリーン URL を含めると便利な場合があります。 このセクションでは、 パネル のフルスクリーン URL の形式を示します。 以下の例では、エンティティ 、 プロジェクト 、 パネル 、およびセクション名を角かっこで囲んで置き換えます。
https://wandb.ai/<ENTITY_NAME>/<PROJECT_NAME>?panelDisplayName=<PANEL_NAME>&panelSectionName=<SECTON_NAME>
同じセクション内の複数の パネル が同じ名前を持つ場合、この URL はその名前の最初の パネル を開きます。
ソーシャル メディア で パネル を埋め込むか共有する
Webサイトに パネル を埋め込んだり、ソーシャル メディア で共有したりするには、リンクを知っている人なら誰でも パネル を表示できる必要があります。 プロジェクト がプライベートの場合、 プロジェクト の メンバー のみ パネル を表示できます。 プロジェクト がパブリックの場合、リンクを知っている人なら誰でも パネル を表示できます。
ソーシャル メディア で パネル を埋め込んだり共有したりするための コード を取得するには:
- ワークスペース から、 パネル の上にマウスを置き、次にアクション メニュー
...
をクリックします。
- Share タブをクリックします。
- Only those who are invited have access を Anyone with the link can view に変更します。 そうしないと、次の手順の選択肢は使用できません。
- Share on Twitter 、 Share on Reddit 、 Share on LinkedIn 、または Copy embed link を選択します。
パネル レポート をメールで送信する
スタンドアロン レポート として単一の パネル をメールで送信するには:
- パネル の上にマウスを置き、次に パネル のアクション メニュー
...
をクリックします。
- Share panel in report をクリックします。
- Invite タブを選択します。
- メール アドレス または ユーザー 名を入力します。
- 必要に応じて、can view を can edit に変更します。
- Invite をクリックします。 W&B は、共有している パネル のみを含む レポート へのクリック可能なリンクを記載したメールを ユーザー に送信します。
パネル を共有する場合とは異なり、受信者はこの レポート から ワークスペース にアクセスできません。
パネル の管理
パネル の編集
パネル を編集するには:
- 鉛筆アイコンをクリックします。
- パネル の 設定 を変更します。
- パネル を別のタイプに変更するには、タイプを選択してから 設定 を 設定 します。
- Apply をクリックします。
パネル の移動
パネル を別のセクションに移動するには、 パネル のドラッグ ハンドルを使用できます。 代わりに、リストから新しいセクションを選択するには:
- 必要に応じて、最後のセクションの後に Add section をクリックして、新しいセクションを作成します。
- パネル のアクション
...
メニューをクリックします。
- Move をクリックし、次に新しいセクションを選択します。
ドラッグ ハンドルを使用して、セクション内の パネル を再配置することもできます。
パネル の複製
パネル を複製するには:
- パネル の上部にあるアクション
...
メニューをクリックします。
- Duplicate をクリックします。
必要に応じて、複製された パネル をカスタマイズまたは移動できます。
パネル の削除
パネル を削除するには:
- パネル の上にマウスを置きます。
- アクション
...
メニューを選択します。
- Delete をクリックします。
手動 ワークスペース からすべての パネル を削除するには、アクション ...
メニューをクリックし、次に Clear all panels をクリックします。
自動または手動 ワークスペース からすべての パネル を削除するには、ワークスペース をリセットできます。 デフォルトの パネル セットで開始するには Automatic を選択し、 パネル のない空の ワークスペース で開始するには Manual を選択します。
セクションの管理
デフォルトでは、 ワークスペース のセクションには、 キー の ログ 階層が反映されます。 ただし、手動 ワークスペース では、セクションは パネル の追加を開始した後にのみ表示されます。
セクションの追加
セクションを追加するには、最後のセクションの後に Add section をクリックします。
既存のセクションの前または後に新しいセクションを追加するには、代わりにセクションのアクション ...
メニューをクリックし、次に New section below または New section above をクリックします。
セクションの パネル の管理
多数の パネル を含むセクションは、Standard grid レイアウトを使用している場合、デフォルトで ページ 分割されます。 ページ 上の パネル のデフォルトの数は、 パネル の 設定 とセクション内の パネル のサイズによって異なります。
- セクションで使用されているレイアウトを確認するには、セクションのアクション
...
メニューをクリックします。 セクションのレイアウトを変更するには、Layout grid セクションで Standard grid または Custom grid を選択します。
- パネル のサイズを変更するには、 パネル の上にマウスを置き、ドラッグ ハンドルをクリックしてドラッグし、 パネル のサイズを調整します。
- セクションで Standard grid が使用されている場合、1つの パネル のサイズを変更すると、セクション内のすべての パネル のサイズが変更されます。
- セクションで Custom grid が使用されている場合、各 パネル のサイズを個別にカスタマイズできます。
- セクションが ページ 分割されている場合は、 ページ に表示する パネル の数をカスタマイズできます。
- セクションの上部にある 1 to of をクリックします。ここで、
<X>
は表示されている パネル の数、<Y>
は パネル の合計数です。
- ページ ごとに表示する パネル の数 (最大100) を選択します。
- 多数の パネル がある場合にすべての パネル を表示するには、Custom grid レイアウトを使用するように パネル を 設定 します。 セクションのアクション
...
メニューをクリックし、次に Layout grid セクションで Custom grid を選択します
- セクションから パネル を削除するには:
- パネル の上にマウスを置き、次にアクション
...
メニューをクリックします。
- Delete をクリックします。
ワークスペース を自動 ワークスペース にリセットすると、削除されたすべての パネル が再び表示されます。
セクションの名前を変更する
セクションの名前を変更するには、アクション ...
メニューをクリックし、次に Rename section をクリックします。
セクションの削除
セクションを削除するには、...
メニューをクリックし、次に Delete section をクリックします。 これにより、セクションとその パネル が削除されます。
1 - Line plots
メトリクスを可視化し、軸をカスタマイズして、プロット上の複数の線を比較します。
折れ線グラフは、wandb.log() で時間の経過とともにメトリクスをプロットすると、デフォルトで表示されます。チャートの設定をカスタマイズして、同じプロット上に複数の線を比較したり、カスタム軸を計算したり、ラベルの名前を変更したりできます。
折れ線グラフの設定を編集する
このセクションでは、個々の折れ線グラフ パネル、セクション内のすべての折れ線グラフ パネル、またはワークスペース内のすべての折れ線グラフ パネルの設定を編集する方法について説明します。
カスタムの X 軸を使用する場合は、Y 軸のログに使用するのと同じ wandb.log()
の呼び出しでログに記録されていることを確認してください。
個々の折れ線グラフ
折れ線グラフの個々の設定は、セクションまたはワークスペースの折れ線グラフの設定よりも優先されます。折れ線グラフをカスタマイズするには:
- マウスをパネルの上に置き、歯車アイコンをクリックします。
- 表示されるモーダル内で、タブを選択して 設定 を編集します。
- 適用 をクリックします。
折れ線グラフの設定
折れ線グラフでは、次の設定を構成できます。
日付: プロットのデータの表示に関する詳細を構成します。
- X: X 軸に使用する値を選択します (デフォルトは ステップ)。X 軸を 相対時間 に変更するか、W&B でログに記録した値に基づいてカスタム軸を選択できます。
- 相対時間 (Wall) は、プロセスが開始してからのクロック時間です。したがって、run を開始して 1 日後に再開し、何かをログに記録した場合、24 時間後にプロットされます。
- 相対時間 (プロセス) は、実行中のプロセス内の時間です。したがって、run を開始して 10 秒間実行し、1 日後に再開した場合、そのポイントは 10 秒でプロットされます。
- Wall Time は、グラフ上の最初の run の開始からの経過時間 (分) です。
- ステップ は、デフォルトで
wandb.log()
が呼び出されるたびに増分され、モデルからログに記録したトレーニング ステップの数を反映することになっています。
- Y: メトリクスや時間の経過とともに変化するハイパーパラメーターなど、ログに記録された値から 1 つ以上の Y 軸を選択します。
- X 軸 および Y 軸 の最小値と最大値 (オプション)。
- ポイント集計メソッド。ランダム サンプリング (デフォルト) または フル フィデリティ。 サンプリング を参照してください。
- スムージング: 折れ線グラフのスムージングを変更します。デフォルトは 時間加重 EMA です。その他の値には、スムージングなし、移動平均、および ガウス があります。
- 外れ値: デフォルトのプロットの最小スケールと最大スケールから外れ値を排除するようにリスケールします。
- run またはグループの最大数: この数を増やすことで、折れ線グラフに一度に表示される線を増やします。デフォルトは 10 runs です。利用可能な run が 10 よりも多いが、グラフが表示数を制限している場合、チャートの上部に「最初の 10 runs を表示」というメッセージが表示されます。
- チャートの種類: 折れ線グラフ、面グラフ、およびパーセンテージ面グラフを切り替えます。
グループ化: プロットで run をグループ化および集計するかどうか、またその方法を構成します。
- グループ化: 列を選択すると、その列に同じ値を持つすべての run がグループ化されます。
- 集計: 集計—グラフ上の線の値。オプションは、グループの平均、中央値、最小値、および最大値です。
チャート: パネル、X 軸、Y 軸、および -軸のタイトルを指定し、凡例の表示/非表示を切り替え、その位置を構成します。
凡例: パネルの凡例の外観をカスタマイズします (有効になっている場合)。
- 凡例: プロットの凡例の各線の凡例のフィールド。
- 凡例テンプレート: 凡例の完全にカスタマイズ可能なテンプレートを定義します。線のプロットの上部にあるテンプレートに表示するテキストと変数、およびマウスをプロットの上に置いたときに表示される凡例を正確に指定します。
式: カスタム計算式をパネルに追加します。
- Y 軸式: 計算されたメトリクスをグラフに追加します。ログに記録されたメトリクスのいずれか、およびハイパーパラメーターなどの設定値を使用して、カスタム線を計算できます。
- X 軸式: カスタム式を使用して計算された値を使用するように X 軸をリスケールします。役立つ変数には、デフォルトの X 軸の **_step** が含まれ、要約値を参照するための構文は
${summary:value}
です。
セクション内のすべての折れ線グラフ
セクション内のすべての折れ線グラフのデフォルト設定をカスタマイズするには、折れ線グラフのワークスペース設定をオーバーライドします。
- セクションの歯車アイコンをクリックして、その設定を開きます。
- 表示されるモーダル内で、データ または 表示設定 タブを選択して、セクションのデフォルト設定を構成します。各 データ 設定の詳細については、前のセクション 個々の折れ線グラフ を参照してください。各表示設定の詳細については、セクション レイアウトの構成 を参照してください。
ワークスペース内のすべての折れ線グラフ
ワークスペース内のすべての折れ線グラフのデフォルト設定をカスタマイズするには:
- ワークスペースの設定をクリックします。これには、設定 というラベルの付いた歯車が付いています。
- 折れ線グラフ をクリックします。
- 表示されるモーダル内で、データ または 表示設定 タブを選択して、ワークスペースのデフォルト設定を構成します。
プロット上の平均値を可視化する
いくつかの異なる Experiments があり、プロット上の値の平均を表示する場合は、テーブルのグループ化機能を使用できます。run テーブルの上にある [グループ] をクリックし、[すべて] を選択して、グラフに平均値を表示します。
平均化する前のグラフは次のようになります。
次の画像は、グループ化された線を使用して runs 全体の平均値を表すグラフを示しています。
プロット上の NaN 値を可視化する
wandb.log
を使用して、PyTorch テンソルを含む NaN
値を折れ線グラフにプロットすることもできます。例:
wandb.log({"test": [..., float("nan"), ...]})
1 つのチャートで 2 つのメトリクスを比較する
- ページの右上隅にある パネルを追加 ボタンを選択します。
- 表示される左側のパネルから、[評価] ドロップダウンを展開します。
- Run comparer を選択します。
折れ線グラフの色を変更する
runs のデフォルトの色が比較に役立たない場合があります。これを克服するために、wandb には、手動で色を変更できる 2 つのインスタンスが用意されています。
各 run には、初期化時にデフォルトでランダムな色が割り当てられます。
いずれかの色をクリックすると、カラー パレットが表示され、そこから必要な色を手動で選択できます。
- 設定を編集するパネルの上にマウスを置きます。
- 表示される鉛筆アイコンを選択します。
- [凡例] タブを選択します。
異なる X 軸で可視化する
実験にかかった絶対時間を確認したり、実験が実行された曜日を確認したりする場合は、X 軸を切り替えることができます。ステップから相対時間、そして Wall Time に切り替える例を次に示します。
面グラフ
折れ線グラフの設定の [詳細設定] タブで、異なるプロット スタイルをクリックして、面グラフまたはパーセンテージ面グラフを取得します。
ズーム
長方形をクリックしてドラッグし、垂直方向と水平方向に同時にズームします。これにより、X 軸と Y 軸のズームが変更されます。
チャートの凡例を非表示にする
この単純なトグルを使用して、折れ線グラフの凡例をオフにします。
1.1 - Line plot reference
X軸
折れ線グラフのX軸には、W&B.log でログに記録した値を設定できます。ただし、常に数値としてログに記録されている必要があります。
Y軸の変数
Y軸の変数には、wandb.log でログに記録した値を設定できます。ただし、数値、数値の配列、または数値のヒストグラムをログに記録している必要があります。変数のポイント数が1500を超える場合、W&B は1500ポイントまでサンプルダウンします。
runs テーブルで run の色を変更すると、Y軸の線の色を変更できます。
X範囲とY範囲
プロットのXとYの最大値と最小値を変更できます。
X範囲のデフォルトは、X軸の最小値から最大値までです。
Y範囲のデフォルトは、メトリクスの最小値とゼロからメトリクスの最大値までです。
最大 run /グループ数
デフォルトでは、10個の run または run のグループのみがプロットされます。run は run テーブルまたは run セットの上部から取得されるため、run テーブルまたは run セットをソートすると、表示される run を変更できます。
凡例
チャートの凡例を制御して、ログに記録した任意の run の任意の設定値と、作成時間や run を作成した ユーザー など、run からのメタデータを表示できます。
例:
${run:displayName} - ${config:dropout}
は、各 run の凡例名を royal-sweep - 0.5
のようにします。ここで、royal-sweep
は run 名で、0.5
は dropout
という名前の設定 パラメータ です。
[[ ]]
内に値を設定すると、チャートにカーソルを合わせたときに、ポイント固有の値をクロスヘアに表示できます。たとえば、\[\[ $x: $y ($original) ]]
は “2: 3 (2.9)” のように表示されます。
[[ ]]
内でサポートされている値は次のとおりです。
値 |
意味 |
${x} |
X値 |
${y} |
Y値(平滑化調整を含む) |
${original} |
Y値(平滑化調整を含まない) |
${mean} |
グループ化された run の平均 |
${stddev} |
グループ化された run の標準偏差 |
${min} |
グループ化された run の最小 |
${max} |
グループ化された run の最大 |
${percent} |
合計のパーセント(積み上げ面グラフの場合) |
グルーピング
グルーピングをオンにしてすべての run を集計したり、個々の変数でグループ化したりできます。テーブル内でグループ化してグルーピングをオンにすることもできます。グループは自動的にグラフに表示されます。
平滑化
平滑化係数を0から1の間に設定できます。0は平滑化なし、1は最大平滑化です。
外れ値を無視する
デフォルトのプロットの最小スケールと最大スケールから外れ値を排除するようにプロットをリスケールします。プロットに対する設定の影響は、プロットのサンプリングモードによって異なります。
- ランダムサンプリングモードを使用するプロットの場合、[外れ値を無視する]を有効にすると、5%から95%のポイントのみが表示されます。外れ値が表示されても、他のポイントとは異なる形式にはなりません。
- フルフィデリティモードを使用するプロットの場合、すべてのポイントが常に表示され、各バケットの最後の値に凝縮されます。[外れ値を無視する]が有効になっている場合、各バケットの最小境界と最大境界が網掛け表示されます。それ以外の場合、領域は網掛け表示されません。
式
式を使用すると、1-精度などの メトリクス から派生した値をプロットできます。現在、単一の メトリクス をプロットしている場合にのみ機能します。単純な算術式(+、-、*、/、%)、および累乗の場合は ** を実行できます。
プロットスタイル
折れ線グラフのスタイルを選択します。
折れ線グラフ:
面グラフ:
パーセンテージ面グラフ:
1.2 - Point aggregation
Data Visualization の精度とパフォーマンスを向上させるために、折れ線グラフ内でポイント集約メソッドを使用します。ポイント集約モードには、full fidelity(完全精度) と random sampling(ランダムサンプリング) の2種類があります。W&B はデフォルトで完全精度モードを使用します。
Full fidelity
完全精度モードを使用すると、W&B はデータポイントの数に基づいて、x軸を動的なバケットに分割します。次に、各バケット内の最小値、最大値、平均値を計算し、折れ線グラフのポイント集約をレンダリングします。
ポイント集約に完全精度モードを使用する主な利点は3つあります。
- 極端な値とスパイクを保持する: データ内の極端な値とスパイクを保持します。
- 最小点と最大点のレンダリング方法を設定する: W&B App を使用して、極端な(最小/最大)値を影付きの領域として表示するかどうかをインタラクティブに決定します。
- データ忠実度を損なわずにデータを探索する: W&B は、特定のデータポイントにズームインすると、x軸のバケットサイズを再計算します。これにより、精度を損なわずにデータを探索できます。キャッシュを使用して、以前に計算された集約を保存し、ロード時間を短縮します。これは、大規模なデータセットをナビゲートする場合に特に役立ちます。
最小点と最大点のレンダリング方法を設定する
折れ線グラフの周りの影付き領域で最小値と最大値を表示または非表示にします。
次の画像は、青い折れ線グラフを示しています。水色の影付き領域は、各バケットの最小値と最大値を表しています。
折れ線グラフで最小値と最大値をレンダリングするには、次の3つの方法があります。
- Never: 最小/最大値は影付きの領域として表示されません。x軸バケット全体の集約された線のみを表示します。
- On hover: 最小/最大値の影付き領域は、チャートにカーソルを合わせると動的に表示されます。このオプションを使用すると、ビューがすっきりした状態に保たれ、範囲をインタラクティブに検査できます。
- Always: 最小/最大影付き領域は、チャート内のすべてのバケットに対して常に表示され、常に値の全範囲を視覚化できます。チャートで多くの Runs が可視化されている場合、これは視覚的なノイズになる可能性があります。
デフォルトでは、最小値と最大値は影付き領域として表示されません。影付き領域オプションのいずれかを表示するには、次の手順に従います。
-
-
- W&B の Projects に移動します。
- 左側のタブで Workspace アイコンを選択します。
- 画面の右上隅にある歯車アイコンを、Add panels ボタンの左側の横にあるアイコンを選択します。
- 表示される UI スライダーから、Line plots を選択します。
- Point aggregation セクション内で、Show min/max values as a shaded area ドロップダウンメニューから On over または Always を選択します。
- W&B の Projects に移動します。
- 左側のタブで Workspace アイコンを選択します。
- 完全精度モードを有効にする折れ線グラフ パネルを選択します。
- 表示されるモーダル内で、Show min/max values as a shaded area ドロップダウンメニューから On hover または Always を選択します。
データ忠実度を損なわずにデータを探索する
極端な値やスパイクなどの重要なポイントを見逃すことなく、データセットの特定領域を分析します。折れ線グラフをズームインすると、W&B は各バケット内の最小値、最大値、平均値を計算するために使用されるバケットサイズを調整します。
W&B は x軸をデフォルトで1000個のバケットに動的に分割します。各バケットについて、W&B は次の値を計算します。
- Minimum: そのバケット内の最小値。
- Maximum: そのバケット内の最大値。
- Average: そのバケット内のすべてのポイントの平均値。
W&B は、完全なデータ表現を保持し、すべてのプロットに極端な値を含める方法でバケット内の値をプロットします。1,000ポイント以下にズームインすると、完全精度モードは追加の集約なしですべてのデータポイントをレンダリングします。
折れ線グラフをズームインするには、次の手順に従います。
- W&B の Projects に移動します。
- 左側のタブで Workspace アイコンを選択します。
- オプションで、折れ線グラフ パネルを ワークスペース に追加するか、既存の折れ線グラフ パネルに移動します。
- クリックしてドラッグし、ズームインする特定の領域を選択します。
折れ線グラフのグループ化と式
折れ線グラフのグループ化を使用すると、W&B は選択したモードに基づいて以下を適用します。
- 非ウィンドウ サンプリング (グループ化): x軸上の Runs 全体でポイントを整列させます。複数のポイントが同じ x 値を共有する場合、平均が計算されます。それ以外の場合は、個別のポイントとして表示されます。
- ウィンドウ サンプリング (グループ化と式): x軸を 250 個のバケットまたは最長線のポイント数 (いずれか小さい方) に分割します。W&B は各バケット内のポイントの平均を取ります。
- Full fidelity (グループ化と式): 非ウィンドウ サンプリングと同様ですが、パフォーマンスと詳細のバランスを取るために、Run ごとに最大 500 ポイントを取得します。
Random sampling
ランダムサンプリングは、1500個のランダムにサンプリングされたポイントを使用して折れ線グラフをレンダリングします。ランダムサンプリングは、多数のデータポイントがある場合にパフォーマンス上の理由で役立ちます。
ランダムサンプリングは、非決定論的にサンプリングします。これは、ランダムサンプリングがデータ内の重要な外れ値やスパイクを除外することがあり、データ精度が低下することを意味します。
ランダムサンプリングを有効にする
デフォルトでは、W&B は完全精度モードを使用します。ランダムサンプリングを有効にするには、次の手順に従います。
-
-
- W&B の Projects に移動します。
- 左側のタブで Workspace アイコンを選択します。
- 画面の右上隅にある歯車アイコンを、Add panels ボタンの左側の横にあるアイコンを選択します。
- 表示される UI スライダーから、Line plots を選択します。
- Point aggregation セクションから Random sampling を選択します。
- W&B の Projects に移動します。
- 左側のタブで Workspace アイコンを選択します。
- ランダムサンプリングを有効にする折れ線グラフ パネルを選択します。
- 表示されるモーダル内で、Point aggregation method セクションから Random sampling を選択します。
サンプリングされていないデータへのアクセス
W&B Run API を使用して、Run 中にログに記録された メトリクス の完全な履歴にアクセスできます。次の例は、特定の Run から損失値を取得して処理する方法を示しています。
# W&B API を初期化します
run = api.run("l2k2/examples-numpy-boston/i0wt6xua")
# 'Loss' メトリクスの履歴を取得します
history = run.scan_history(keys=["Loss"])
# 履歴から損失値を抽出します
losses = [row["Loss"] for row in history]
1.3 - Smooth line plots
折れ線グラフでは、スムージングを使ってノイズの多いデータ のトレンドを確認します。
W&B は3種類の平滑化をサポートしています。
これらの機能を インタラクティブな W&B レポート でライブで確認できます。
指数移動平均 (デフォルト)
指数平滑化は、過去の点の重みを指数関数的に減衰させることで、 時系列 データを平滑化する手法です。範囲は0から1です。背景については、指数平滑化を参照してください。時系列の初期の値がゼロに偏らないように、バイアス除去項が追加されています。
EMAアルゴリズムは、線上の点の密度 (x軸の範囲の単位あたりの y
値の数) を考慮します。これにより、異なる特性を持つ複数の線を同時に表示する際に、一貫した平滑化が可能になります。
以下は、この仕組みの内部動作を示すサンプル コードです。
const smoothingWeight = Math.min(Math.sqrt(smoothingParam || 0), 0.999);
let lastY = yValues.length > 0 ? 0 : NaN;
let debiasWeight = 0;
return yValues.map((yPoint, index) => {
const prevX = index > 0 ? index - 1 : 0;
// VIEWPORT_SCALEは、結果をチャートのx軸範囲にスケールします
const changeInX =
((xValues[index] - xValues[prevX]) / rangeOfX) * VIEWPORT_SCALE;
const smoothingWeightAdj = Math.pow(smoothingWeight, changeInX);
lastY = lastY * smoothingWeightAdj + yPoint;
debiasWeight = debiasWeight * smoothingWeightAdj + 1;
return lastY / debiasWeight;
});
これは アプリ内 では次のようになります。
ガウシアン平滑化
ガウシアン平滑化 (またはガウシアン カーネル平滑化) は、点の加重平均を計算します。ここで、重みは平滑化 パラメータ として指定された標準偏差を持つガウス分布に対応します。を参照してください。平滑化された 値 は、すべての入力x 値 に対して計算されます。
TensorBoard の 振る舞い と一致させることを気にしない場合は、ガウシアン平滑化は平滑化に適した標準的な選択肢です。指数移動平均とは異なり、値の前後に発生する点に基づいて点が平滑化されます。
これは アプリ内 では次のようになります。
移動平均
移動平均は、指定されたx 値 の前後のウィンドウ内の点の平均で点を置き換える平滑化アルゴリズムです。https://en.wikipedia.org/wiki/Moving_average の「Boxcar Filter」を参照してください。移動平均に選択された パラメータ は、Weights and Biases に移動平均で考慮する点の数を伝えます。
点 がx軸上で不均等に配置されている場合は、ガウシアン平滑化の使用を検討してください。
次の画像は、実行中のアプリが アプリ内 でどのように見えるかを示しています。
指数移動平均 (非推奨)
TensorBoard EMAアルゴリズムは、一貫した点密度 (x軸の単位あたりにプロットされる点の数) を持たない同じチャート上の複数の線を正確に平滑化できないため、非推奨になりました。
指数移動平均は、TensorBoard の平滑化アルゴリズムと一致するように実装されています。範囲は0から1です。背景については、指数平滑化を参照してください。時系列の初期の値がゼロに偏らないように、バイアス除去項が追加されています。
以下は、この仕組みの内部動作を示すサンプル コードです。
data.forEach(d => {
const nextVal = d;
last = last * smoothingWeight + (1 - smoothingWeight) * nextVal;
numAccum++;
debiasWeight = 1.0 - Math.pow(smoothingWeight, numAccum);
smoothedData.push(last / debiasWeight);
これは アプリ内 では次のようになります。
実装の詳細
すべての平滑化アルゴリズムはサンプリングされた データ で実行されます。つまり、1500を超える点を ログ に記録すると、平滑化アルゴリズムは サーバー から点がダウンロードされた 後 に実行されます。平滑化アルゴリズムの目的は、 データ 内のパターンをすばやく見つけるのに役立つことです。多数の ログ に記録された点 を持つ メトリクス で正確な平滑化された 値 が必要な場合は、API を介して メトリクス をダウンロードし、独自の平滑化 メソッド を実行する方が良い場合があります。
元のデータを非表示にする
デフォルトでは、元の平滑化されていない データ が背景に薄い線として表示されます。これをオフにするには、[元のデータを表示] トグルをクリックします。
2 - Bar plots
メトリクスを可視化し、軸をカスタマイズして、カテゴリカルデータを棒グラフとして比較します。
棒グラフは、カテゴリカルデータを長方形の棒で表示し、垂直または水平にプロットできます。棒グラフは、すべてのログに記録された値の長さが1の場合、デフォルトで wandb.log() で表示されます。
チャートの設定で、表示する最大 run 数を制限したり、configで run をグループ化したり、ラベルの名前を変更したりできます。
棒グラフのカスタマイズ
また、Box プロットまたは Violin プロットを作成して、多くの要約統計量を1つのチャートタイプにまとめることもできます。
- run テーブルで run をグループ化します。
- ワークスペース で「パネルを追加」をクリックします。
- 標準の「棒グラフ」を追加し、プロットするメトリックを選択します。
- 「グループ化」タブで、「箱ひげ図」または「バイオリン」などを選択して、これらのスタイルをプロットします。
3 - Parallel coordinates
機械学習 の 実験 における 結果 を比較する
並列座標チャートは、多数のハイパーパラメータとモデル の メトリクス の関係を一目で把握できるようにまとめたものです。
- 軸:
wandb.config
のさまざまなハイパーパラメータと、wandb.log
のメトリクス。
- 線: 各線は単一の run を表します。線にマウスオーバーすると、run に関する詳細がツールチップに表示されます。現在のフィルタに一致するすべての線が表示されますが、目のアイコンをオフにすると、線はグレー表示になります。
並列座標パネルの作成
- ワークスペース のランディングページに移動します
- パネルを追加 をクリックします
- 並列座標 を選択します
パネル の 設定
パネル を構成するには、パネル の右上隅にある編集ボタンをクリックします。
- ツールチップ: マウスオーバーすると、各 run の情報を示す凡例が表示されます
- タイトル: 軸のタイトルを編集して、より読みやすくします
- 勾配: 好みの色範囲に合わせて 勾配 をカスタマイズします
- 対数スケール: 各軸は、対数スケールで個別に表示するように設定できます
- 軸の反転: 軸の方向を切り替えます。これは、精度と損失の両方を列として持つ場合に便利です
ライブ並列座標パネルを操作する
4 - Scatter plots
このページでは、W&B で散布図を使用する方法について説明します。
ユースケース
散布図を使用して、複数の run を比較し、実験のパフォーマンスを可視化します。
- 最小値、最大値、および平均値の線を描画します。
- メタデータツールチップをカスタマイズします。
- 点の色を制御します。
- 軸の範囲を調整します。
- 軸にログスケールを使用します。
例
次の例は、数週間の実験におけるさまざまな model の検証精度を表示する散布図を示しています。ツールチップには、バッチサイズ、ドロップアウト、および軸の値が含まれています。線は、検証精度の移動平均も示しています。
ライブの例を見る →
散布図の作成
W&B UI で散布図を作成するには:
- [Workspaces] タブに移動します。
- [Charts] パネルで、アクションメニュー
...
をクリックします。
- ポップアップメニューから、[Add panels] を選択します。
- [Add panels] メニューで、[Scatter plot] を選択します。
- 表示するデータのプロットするために、
x
軸と y
軸を設定します。オプションで、軸の最大範囲と最小範囲を設定するか、z
軸を追加します。
- [Apply] をクリックして、散布図を作成します。
- [Charts] パネルで新しい散布図を表示します。
5 - Save and diff code
デフォルトでは、W&B は最新の git コミットハッシュのみを保存します。より多くのコード機能を有効にすると、UI で Experiments 間のコードを動的に比較できます。
wandb
バージョン 0.8.28 以降、W&B は wandb.init()
を呼び出すメインのトレーニングファイルからコードを保存できます。
ライブラリコードを保存する
コードの保存を有効にすると、W&B は wandb.init()
を呼び出したファイルからコードを保存します。追加のライブラリコードを保存するには、次の 3 つのオプションがあります。
wandb.init()
を呼び出した後、wandb.run.log_code(".")
を呼び出す
import wandb
wandb.init()
wandb.run.log_code(".")
code_dir
を設定して、設定オブジェクトを wandb.init
に渡す
import wandb
wandb.init(settings=wandb.Settings(code_dir="."))
これにより、現在のディレクトリーとそのすべてのサブディレクトリーにあるすべての Python ソースコードファイルが Artifacts としてキャプチャされます。保存されるソースコードファイルの種類と場所をより詳細に制御するには、リファレンスドキュメント を参照してください。
UI でコードの保存を設定する
プログラムでコードの保存を設定するだけでなく、W&B アカウントの Settings でこの機能を切り替えることもできます。これにより、アカウントに関連付けられているすべての Teams に対してコードの保存が有効になることに注意してください。
デフォルトでは、W&B はすべての Teams に対してコードの保存を無効にします。
- W&B アカウントにログインします。
- Settings > Privacy に移動します。
- Project and content security で、Disable default code saving をオンにします。
コード比較ツール
異なる W&B の Runs で使用されるコードを比較します。
- ページの右上隅にある Add panels ボタンを選択します。
- TEXT AND CODE ドロップダウンを展開し、Code を選択します。
Jupyter セッション履歴
W&B は、Jupyter ノートブックセッションで実行されたコードの履歴を保存します。Jupyter 内で wandb.init() を呼び出すと、W&B は現在のセッションで実行されたコードの履歴を含む Jupyter ノートブックを自動的に保存する hook を追加します。
- コードを含む project のワークスペースに移動します。
- 左側のナビゲーションバーで Artifacts タブを選択します。
- code artifact を展開します。
- Files タブを選択します。
これにより、セッションで実行されたセルと、iPython の display メソッドを呼び出すことによって作成された出力が表示されます。これにより、特定の run で Jupyter 内で実行されたコードを正確に確認できます。可能な場合、W&B はコードディレクトリーにある最新バージョンのノートブックも保存します。
6 - Parameter importance
モデルのハイパーパラメーターと出力メトリクスの関係を可視化します。
どのハイパーパラメータが最も優れた予測因子であり、メトリクスの望ましい値と高度に相関しているかを調べます。
相関 は、ハイパーパラメータと選択したメトリクス(この場合は val_loss)の間の線形相関です。したがって、高い相関は、ハイパーパラメータが高い値を持つ場合、メトリクスも高い値を持つことを意味し、その逆もまた同様です。相関は見るべき優れたメトリクスですが、入力間の二次的な相互作用を捉えることができず、大きく異なる範囲の入力を比較するのが面倒になる可能性があります。
したがって、W&B は 重要度 メトリクスも計算します。W&B は、ハイパーパラメータを入力として、メトリクスをターゲット出力としてランダムフォレストをトレーニングし、ランダムフォレストのフィーチャーの重要度の値をレポートします。
この手法のアイデアは、Jeremy Howard との会話に触発されました。彼は、Fast.ai でハイパーパラメータ空間を調査するために、ランダムフォレストのフィーチャーの重要度の使用を開拓しました。W&B は、この 講義 (およびこれらの ノート)をチェックして、この分析の背後にある動機について詳しく学ぶことを強くお勧めします。
ハイパーパラメータの重要度パネルは、高度に相関するハイパーパラメータ間の複雑な相互作用を解きほぐします。そうすることで、モデルのパフォーマンスを予測するという点で、どのハイパーパラメータが最も重要であるかを示すことにより、ハイパーパラメータの検索を微調整するのに役立ちます。
ハイパーパラメータの重要度パネルの作成
- W&B の Projects に移動します。
- Add panels ボタンを選択します。
- CHARTS ドロップダウンを展開し、ドロップダウンから Parallel coordinates を選択します。
空の panel が表示される場合は、runs がグループ化されていないことを確認してください
パラメータマネージャーを使用すると、表示および非表示のパラメータを手動で設定できます。
ハイパーパラメータの重要度パネルの解釈
この panel には、トレーニングスクリプトの wandb.config オブジェクトに渡されたすべてのパラメータが表示されます。次に、これらの config パラメータのフィーチャーの重要度と相関関係が、選択したモデルメトリクス(この場合は val_loss
)に関して表示されます。
重要度
重要度の列には、選択したメトリクスの予測に各ハイパーパラメータがどの程度役立ったかが表示されます。多数のハイパーパラメータのチューニングを開始し、このプロットを使用して、さらに調査する価値のあるハイパーパラメータを絞り込むシナリオを想像してください。後続の Sweeps は、最も重要なハイパーパラメータに限定できるため、より優れたモデルをより迅速かつ安価に見つけることができます。
W&B は、ツリーベースのモデルを使用して重要度を計算します。これは、線形モデルよりも、カテゴリデータと正規化されていないデータの両方に対して寛容であるためです。
前の画像では、epochs, learning_rate, batch_size
および weight_decay
が非常に重要であることがわかります。
相関
相関は、個々のハイパーパラメータとメトリクスの値の間の線形関係を捉えます。SGD オプティマイザーなどのハイパーパラメータの使用と val_loss
の間に有意な関係があるかどうかという質問に答えます(この場合の答えはイエスです)。相関値の範囲は -1 から 1 で、正の値は正の線形相関を表し、負の値は負の線形相関を表し、0 の値は相関がないことを表します。一般に、どちらかの方向に 0.7 より大きい値は強い相関を表します。
このグラフを使用して、メトリクスとの相関が高い値をさらに調べたり(この場合は、確率的勾配降下法または adam を rmsprop または nadam よりも選択したり)、より多くのエポックでトレーニングしたりできます。
- 相関は、必ずしも因果関係ではなく、関連性の証拠を示しています。
- 相関は外れ値に敏感です。特に試行されたハイパーパラメータのサンプルサイズが小さい場合、強い関係を中程度の関係に変える可能性があります。
- そして最後に、相関はハイパーパラメータとメトリクスの間の線形関係のみを捉えます。強い多項式関係がある場合、相関によって捉えられません。
重要度と相関の間の格差は、重要度がハイパーパラメータ間の相互作用を考慮するのに対し、相関は個々のハイパーパラメータがメトリクスの値に与える影響のみを測定するという事実に起因します。次に、相関は線形関係のみを捉え、重要度はより複雑な関係を捉えることができます。
ご覧のとおり、重要度と相関はどちらも、ハイパーパラメータがモデルのパフォーマンスにどのように影響するかを理解するための強力な Tool です。
7 - Compare run metrics
複数の run 間でメトリクスを比較する
Run Comparer を使用して、run間で異なるメトリクスを確認できます。
- ページの右上隅にある [Add panels] ボタンを選択します。
- 表示される左側のパネルで、[Evaluation] ドロップダウンを展開します。
- [Run comparer] を選択します。
diff only オプションを切り替えて、run間で値が同じ行を非表示にします。
8 - Query panels
このページのいくつかの機能はベータ版で、機能フラグの背後に隠されています。関連するすべての機能をアンロックするには、プロフィールページの自己紹介に weave-plot
を追加してください。
W&B Weave をお探しですか? 生成 AI アプリケーション構築のための W&B のツールスイートですか? Weave のドキュメントはこちらにあります:
wandb.me/weave。
クエリー パネルを使用して、データをクエリーし、インタラクティブに視覚化します。
クエリー パネルの作成
ワークスペースまたは レポート 内にクエリーを追加します。
-
-
- プロジェクト の ワークスペース に移動します。
- 右上隅にある「Add panel( パネル を追加)」をクリックします。
- ドロップダウンから「Query panel(クエリー パネル )」を選択します。

「/Query panel(/クエリー パネル )」と入力して選択します。
または、クエリーを 一連の Runs に関連付けることもできます。
- レポート 内で、「/Panel grid(/ パネル グリッド)」と入力して選択します。
- 「Add panel( パネル を追加)」ボタンをクリックします。
- ドロップダウンから「Query panel(クエリー パネル )」を選択します。
クエリーのコンポーネント
式
クエリー式を使用して、Runs、Artifacts、Models、Tables など、W&B に保存されているデータをクエリーします。
例: テーブル のクエリー
W&B Table をクエリーするとします。 トレーニング コード で、"cifar10_sample_table"
というテーブルを ログ に記録します。
import wandb
wandb.log({"cifar10_sample_table":<MY_TABLE>})
クエリー パネル 内では、次のコードでテーブルをクエリーできます。
runs.summary["cifar10_sample_table"]
これを分解すると次のようになります。
runs
は、クエリー パネル が ワークスペース にある場合、クエリー パネル 式に自動的に挿入される変数です。 その「値」は、特定の ワークスペース で表示できる Runs のリストです。 run で使用できるさまざまな属性については、こちらをお読みください。
summary
は、Run の Summary オブジェクトを返す op です。 Op は mapped です。つまり、この op はリスト内の各 Run に適用され、Summary オブジェクトのリストが生成されます。
["cifar10_sample_table"]
は、predictions
という パラメータ を持つ Pick op(角かっこで示されます)です。 Summary オブジェクトは ディクショナリー または マップ のように動作するため、この操作は各 Summary オブジェクトから predictions
フィールドを選択します。
独自のクエリーをインタラクティブに作成する方法については、この レポート を参照してください。
設定
パネル の左上隅にある歯車アイコンを選択して、クエリー 設定 を展開します。 これにより、 ユーザー は パネル のタイプと、結果 パネル の パラメータ を 設定 できます。
結果 パネル
最後に、クエリー結果 パネル は、選択したクエリー パネル を使用して、クエリー式の結果をレンダリングし、データ をインタラクティブな形式で表示するように 設定 によって 設定 されます。 次の画像は、同じデータの Table とプロットを示しています。
基本操作
クエリー パネル 内で実行できる一般的な操作を次に示します。
並べ替え
列オプションから並べ替えを行います。

フィルター
クエリーで直接 フィルター するか、左上隅にある フィルター ボタンを使用できます(2 番目の画像)。

マップ
マップ 操作はリストを反復処理し、データ 内の各要素に関数を適用します。 これは、 パネル クエリー で直接行うか、列オプションから新しい列を挿入して行うことができます。

グループ化
クエリーまたは列オプションを使用してグループ化できます。

連結
連結操作を使用すると、2 つのテーブルを連結し、 パネル 設定 から連結または結合できます。

結合
クエリーでテーブルを直接結合することも可能です。 次のクエリー式を検討してください。
project("luis_team_test", "weave_example_queries").runs.summary["short_table_0"].table.rows.concat.join(\
project("luis_team_test", "weave_example_queries").runs.summary["short_table_1"].table.rows.concat,\
(row) => row["Label"],(row) => row["Label"], "Table1", "Table2",\
"false", "false")
左側のテーブルは、次のように生成されます。
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join
右側のテーブルは、次のように生成されます。
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat
説明:
(row) => row["Label"]
は各テーブルのセレクターであり、結合する列を決定します
"Table1"
と "Table2"
は、結合時の各テーブルの名前です
true
と false
は、左側の内部/外部結合 設定 用です
Runs オブジェクト
クエリー パネル を使用して runs
オブジェクトにアクセスします。 Run オブジェクトは、 Experiments のレコードを保存します。 詳細については、 レポート のこのセクションを参照してください。簡単にまとめると、runs
オブジェクトには次のものが含まれます。
summary
: Run の結果をまとめた情報の ディクショナリー 。 これは、精度や損失などのスカラー、または大きなファイルにすることができます。 デフォルトでは、wandb.log()
は Summary を ログ に記録された 時系列 の最終値に 設定 します。 Summary の内容を直接 設定 できます。 Summary を Run の出力として考えてください。
history
: 損失など、モデル の トレーニング 中に変化する値を保存するための ディクショナリー のリスト。 コマンド wandb.log()
はこの オブジェクト に追加されます。
config
: トレーニング Run の ハイパー パラメータ ーや、データセット Artifact を作成する Run の 前処理 メソッド など、Run の 設定 情報の ディクショナリー 。 これらを Run の「入力」と考えてください。

Artifacts へのアクセス
Artifacts は W&B の 中核となる概念です。 これらは、 バージョン 管理された名前付きのファイルと ディレクトリー のコレクションです。 Artifacts を使用して、モデル の重み、データセット 、およびその他のファイルまたは ディレクトリー を追跡します。 Artifacts は W&B に保存され、ダウンロードしたり、他の Runs で使用したりできます。 詳細と例については、 レポート のこのセクションを参照してください。 Artifacts には通常、project
オブジェクト からアクセスします。
project.artifactVersion()
: プロジェクト 内の指定された名前と バージョン の特定の Artifact バージョン を返します。
project.artifact("")
: プロジェクト 内の指定された名前の Artifact を返します。 次に、.versions
を使用して、この Artifact のすべての バージョン のリストを取得できます。
project.artifactType()
: プロジェクト 内の指定された名前の artifactType
を返します。 次に、.artifacts
を使用して、このタイプのすべての Artifacts のリストを取得できます。
project.artifactTypes
: プロジェクト 下にあるすべての Artifact タイプ のリストを返します。

8.1 - Embed objects
W&B の Embedding Projector を使用すると、PCA、UMAP、t-SNE などの一般的な次元削減アルゴリズムを使用して、多次元埋め込みを 2D 平面にプロットできます。
埋め込み は、オブジェクト(人、画像、投稿、単語など)を数値のリスト、つまり ベクトル で表現するために使用されます。 機械学習とデータサイエンスのユースケースでは、埋め込みは、さまざまなアプリケーションでさまざまなアプローチを使用して生成できます。このページでは、読者が埋め込みについてよく理解しており、W&B 内で視覚的に分析することに関心があることを前提としています。
埋め込みの例
Hello World
W&B を使用すると、wandb.Table
クラスを使用して埋め込みをログに記録できます。それぞれが 5 次元で構成される 3 つの埋め込みの次の例を考えてみましょう。
import wandb
wandb.init(project="embedding_tutorial")
embeddings = [
# D1 D2 D3 D4 D5
[0.2, 0.4, 0.1, 0.7, 0.5], # 埋め込み 1
[0.3, 0.1, 0.9, 0.2, 0.7], # 埋め込み 2
[0.4, 0.5, 0.2, 0.2, 0.1], # 埋め込み 3
]
wandb.log(
{"embeddings": wandb.Table(columns=["D1", "D2", "D3", "D4", "D5"], data=embeddings)}
)
wandb.finish()
上記のコードを実行すると、W&B ダッシュボードにデータを含む新しい Table が表示されます。 右上のパネルセレクターから [2D Projection] を選択して、埋め込みを 2 次元でプロットできます。 スマートデフォルトが自動的に選択されます。これは、歯車アイコンをクリックしてアクセスできる設定メニューで簡単にオーバーライドできます。 この例では、利用可能な 5 つの数値次元すべてを自動的に使用します。
Digits MNIST
上記の例は、埋め込みをログに記録する基本的なメカニズムを示していますが、通常はより多くの次元とサンプルを扱っています。 MNIST Digits データセット(UCI ML 手書き数字データセットs) について考えてみましょう。SciKit-Learn 経由で利用できます。 このデータセットには 1797 件のレコードがあり、それぞれに 64 の次元があります。 この問題は、10 クラス分類のユースケースです。 入力データを画像に変換して、可視化することもできます。
import wandb
from sklearn.datasets import load_digits
wandb.init(project="embedding_tutorial")
# データセットをロードする
ds = load_digits(as_frame=True)
df = ds.data
# 「target」列を作成する
df["target"] = ds.target.astype(str)
cols = df.columns.tolist()
df = df[cols[-1:] + cols[:-1]]
# 「image」列を作成する
df["image"] = df.apply(
lambda row: wandb.Image(row[1:].values.reshape(8, 8) / 16.0), axis=1
)
cols = df.columns.tolist()
df = df[cols[-1:] + cols[:-1]]
wandb.log({"digits": df})
wandb.finish()
上記のコードを実行すると、再び UI に Table が表示されます。 [2D Projection] を選択すると、埋め込みの定義、色付け、アルゴリズム (PCA、UMAP、t-SNE)、アルゴリズムのパラメータ、さらにはオーバーレイ (この場合は、ポイントにカーソルを合わせると画像が表示されます) を設定できます。 この特定のケースでは、これらはすべて「スマートデフォルト」であり、[2D Projection] を 1 回クリックすると、非常によく似たものが表示されます。 (ここをクリックして操作この例を参照してください)。
ログ記録のオプション
埋め込みは、さまざまな形式でログに記録できます。
- 単一の埋め込み列: 多くの場合、データはすでに「マトリックス」のような形式になっています。 この場合、単一の埋め込み列を作成できます。ここで、セル値のデータ型は
list[int]
、list[float]
、または np.ndarray
になります。
- 複数の数値列: 上記の 2 つの例では、このアプローチを使用し、次元ごとに列を作成します。 現在、セルには python
int
または float
を使用できます。

さらに、すべてのテーブルと同様に、テーブルの構築方法に関して多くのオプションがあります。
wandb.Table(dataframe=df)
を使用して dataframe から直接
wandb.Table(data=[...], columns=[...])
を使用して データのリスト から直接
- テーブルを 行ごとに (コードにループがある場合に最適) 段階的に構築 します。
table.add_data(...)
を使用してテーブルに行を追加します
- テーブルに 埋め込み列 を追加します (埋め込み形式の予測のリストがある場合に最適)。
table.add_col("col_name", ...)
- 計算された列 を追加します (テーブルにマップする関数または model がある場合に最適)。
table.add_computed_columns(lambda row, ndx: {"embedding": model.predict(row)})
プロットオプション
[2D Projection] を選択した後、歯車アイコンをクリックしてレンダリング設定を編集できます。 目的の列を選択することに加えて (上記を参照)、目的のアルゴリズム (および目的のパラメータ) を選択できます。 以下に、それぞれ UMAP と t-SNE のパラメータを示します。

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