- コード: サンプルの Colab ノートブックを試してください。
- 動画: 解説動画をご覧ください。
- 例: Keras と Sklearn のクイック デモノートブック。

仕組み
- データをログする: スクリプトから、設定 と summary データをログします。
- チャートをカスタマイズする: GraphQL クエリでログしたデータを取得します。Vega という可視化記法を使って、クエリ結果を可視化します。
- チャートをログする: スクリプトから
wandb.plot_table()を呼び出して、独自のプリセットを使用します。

スクリプトからチャートをログする
以下のセクションでは、トレーニングスクリプトからチャートを直接ログする 2 つの方法について説明します。1 つは一般的な可視化に対応する組み込みのチャートプリセット、もう 1 つは独自の Vega 仕様を再利用できるカスタムプリセットです。組み込みプリセット
W&B には、スクリプトから直接ログできる組み込みのチャートプリセットがいくつか用意されています。これには、折れ線グラフ、散布図、棒グラフ、ヒストグラム、PR 曲線、ROC 曲線が含まれます。- 折れ線グラフ
- 散布プロット
- 棒グラフ
- ヒストグラム
- PR曲線
- ROC曲線
wandb.plot.line()カスタムの折れ線グラフをログします。これは、任意の x 軸と y 軸上の点 (x, y) を順番に結んだプロットです。
カスタムプリセット
組み込みのプリセットを調整するか、新しいプリセットを作成して、チャートを保存します。チャートIDを使用して、スクリプトから直接そのカスタムプリセットにデータをログできます。サンプルの Google Colab ノートブックを試す。
データをログする
カスタム チャートで何かを可視化する前に、スクリプトはチャートエディタがクエリできる形式で基になるデータをログしている必要があります。スクリプトから次のデータ型をログして、カスタムチャートで使用できます。- Config: 実験の初期設定 (独立変数) です。これには、トレーニング開始時に
wandb.Run.configにキーとしてログした名前付きフィールドが含まれます。例:wandb.Run.config.learning_rate = 0.0001 - Summary: トレーニング中にログされた単一の値 (結果または従属変数) です。たとえば、
wandb.Run.log({"val_acc" : 0.8})です。トレーニング中にwandb.Run.log()でこのキーに複数回書き込んだ場合、summary にはそのキーの最後の値が設定されます。 - History: ログされたスカラーの完全な時系列は、
historyフィールドを通じてクエリできます - summaryTable: 複数の値のリストをログする必要がある場合は、
wandb.Table()を使用してそのデータを保存し、その後カスタムパネルでクエリします。 - historyTable: 履歴データを確認する必要がある場合は、カスタムチャートパネルで
historyTableをクエリします。wandb.Table()を呼び出すかカスタムチャートをログするたびに、その step の history に新しい表が作成されます。
カスタム表をログする
wandb.Table() を使用して、データを二次元配列としてログします。通常、この表の各行は 1 つのデータポイントを表し、各列はプロットしたい各データポイントに関連するフィールドや次元を表します。カスタムパネルを設定すると、表全体には wandb.Run.log() に渡した名前付きキー (次の例では custom_data_table) でアクセスできます。個々のフィールドには列名 (x、y、z) でアクセスできます。実験全体を通して、複数のタイムステップで表をログできます。各表の最大サイズは 10,000 行です。Google Colab ノートブックの例を試す。
チャートをカスタマイズする
データをログしたら、取り込むログ済みの値とその表示方法を選択して、W&B Appでチャートを作成します。まず新しいカスタムチャートを追加して開始し、その後クエリを編集して表示中のRunsからデータを選択します。クエリでは、GraphQLを使用して、Runs内のconfig、summary、historyフィールドからデータを取得します。
ARIAに説明を与えてカスタム チャートを作成させることもできます。ワークスペース から ARIA を開き、必要なチャートを説明してください。
GraphQL クエリを作成する
カスタム チャート エディターは、ワークスペースまたは report で選択した run に対して GraphQL クエリを実行します。クエリ エディターで必要なフィールドを追加してください。config、summary、history、summaryTable、historyTable から選択できるため、多くの場合、クエリを最初から記述する必要はありません。
クエリ内の各ソースは、それぞれ異なるログ済みデータに対応しています。
- Config は、run 設定 の値 (ハイパーパラメーターやその他の設定) を取得します。
- Summary は、summary の値を取得します。デフォルトでは、
wandb.Run.log()でログしたキーの summary には、そのキーに最後に書き込まれた値が保持されます。別の集計方法を使用するには、wandb.Run.define_metric(..., summary=...)を"min"、"max"、"mean"、"best"、"none"のいずれかとともに呼び出します。値を直接設定するには、wandb.Run.summary["key"] = valueを代入します。 - History は、run 履歴からスカラー時系列を取得します (たとえば、各 step における
lossやaccuracy) 。最後の数値だけでなく曲線全体が必要な場合は、history を使用してください。 summaryTableは、run summary からwandb.Tableを読み込みます。対象の表が run に単一のスナップショットとして保存されている場合 (たとえば、最後に一度だけログする混同行列) に使用してください。historyTableは、run 履歴からwandb.Tableを読み込みます。wandb.Run.log()で表をログするたびに、その表を含む新しい step が run 履歴に追加されます。表が時間とともに変化する場合や、カスタム チャート エディターで step セレクターを有効にしたい場合は、historyTableを使用してください (カスタム チャートで step スライダーを表示するにはどうすればよいですか? を参照してください) 。
summaryTable と historyTable では、tableKey には wandb.Table 内の列名ではなく、wandb.Run.log() 内で使用した辞書キーを設定してください。
以下の例は、よくあるケースを示しています。
- 各 step でログした表の列をプロットする場合 (たとえば PR 曲線) :
historyTableを追加し、tableKeyをログしたキー (たとえばpr_curve) に設定してから、Chart fields で表の列をマッピングします。カスタム チャート チュートリアル を参照してください。 - summary にある表の列をプロットする場合 (たとえば、複合ヒストグラムのクラス スコア) :
summaryTableを追加し、tableKeyをそのキーに設定します (チュートリアルではclass_scoresを使用しています) 。おまけ: 複合ヒストグラム を参照してください。 - トレーニング step に対するスカラー メトリクスをプロットする場合: history からそのメトリクスを追加します。summary からのみ追加すると、チャートには run ごとに 1 つの値だけが表示されます。
runSets_ で始まることが多く、選択したクエリ フィールドを反映しています。手入力するのではなく、各 ${field:...} プレースホルダーの横にあるドロップダウンから選択してください。
列がまったく表示されない場合は、選択した run にそのキーが存在することを確認し、run ページを開いてデータがどのようにログされたかを確認したうえで、summaryTable と historyTable のどちらがそのログ パターンに合っているかを確認してください。
カスタム チャートでは、この GraphQL ベースのパネル クエリを使用します。Query panels では別の式言語を使用しており、ドキュメントも分かれています。

カスタム可視化
右上の Chart を選択して、デフォルトのプリセットから始めます。次に、Chart fields を選択し、クエリで取得したデータをチャート内の対応するフィールドにマッピングします。 次の画像は、メトリクスを選択してから、それを棒グラフのフィールドにマッピングする方法を示しています。
Vega を編集
パネル上部の Edit をクリックすると、Vega の編集モードに入ります。ここでは、UI 上でインタラクティブなチャートを作成するための Vega specification を定義できます。チャートのあらゆる要素を変更できます。たとえば、タイトルを変更したり、別の配色を選んだり、曲線を連続した線ではなく点の列として表示したりできます。また、Vega の transform を使って値の配列をビニングし、ヒストグラムにするなど、データ自体を変更することもできます。パネルのプレビューはインタラクティブに更新されるため、Vega spec やクエリを編集しながら、変更の効果を確認できます。詳細は、Vega documentation and tutorialsを参照してください。 フィールド参照 W&B からチャートにデータを取り込むには、"${field:<field-name>}" 形式のテンプレート文字列を Vega spec 内の任意の場所に追加します。これにより、右側の Chart fields 領域にドロップダウンが作成され、Vega にマッピングするクエリ結果の列を選択できます。
フィールドのデフォルト値を設定するには、次の構文を使用します: "${field:<field-name>:<placeholder text>}"
チャートプリセットを保存する
毎回作り直す代わりに、プリセットを保存すると、同じ Vega 定義をパネルや Projects 間で再利用できます。モーダルの下部にあるボタンを使って、特定の可視化パネルに変更を適用できます。あるいは、Vega spec を保存して、プロジェクト内の別の場所で再利用することもできます。再利用可能なチャート定義を保存するには、Vega エディタ上部の 名前を付けて保存 をクリックし、プリセットに名前を付けます。Reports とガイド
以下のReportsでは、エンドツーエンドの例と、実際のカスタムチャートをより深く掘り下げた内容を紹介しています。- W&Bの機械学習可視化IDE
- カスタムチャートを使ってNLPのAttentionベースモデルを可視化する
- カスタムチャートを使ってAttentionが勾配フローに与える影響を可視化する
- 任意の曲線をログする
一般的なユース ケース
カスタム チャートは、デフォルトのパネルでは表現できない内容を表示したい場合に便利です。たとえば、次のようなケースがあります。- エラーバー付きの棒グラフをカスタマイズする
- カスタムの x-y 座標が必要なモデルの検証メトリクス (適合率-再現率曲線など) を表示する
- 2 つの異なるモデルや experiment のデータ分布をヒストグラムとして重ねて表示する
- トレーニング中の複数の時点のスナップショットを使って、メトリクスの変化を表示する
- W&B でまだ利用できない独自の可視化を作成して、他のユーザーと共有する




