メインコンテンツへスキップ
カスタムチャートを使用して、パネルに読み込むデータとその可視化を制御します。

1. W&B へのデータのログ記録

まず、スクリプトでデータをログに記録します。ハイパーパラメーターのように、トレーニングの開始時に設定される単一のポイントには wandb.Run.config を使用してください。時系列に沿った複数のポイントには wandb.Run.log() を使用し、カスタムの 2D 配列は wandb.Table() でログを記録します。ログを記録する キー (key) ごとに、最大 10,000 データポイントまでのログ記録を推奨しています。
with wandb.init() as run: 

  # データのカスタムテーブルをログに記録する
  my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
  run.log(
    {"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
  )
クイックサンプルのノートブックを試して データテーブルをログに記録してみましょう。次のステップでカスタムチャートを設定します。結果のチャートがどのように見えるかは、こちらの ライブレポート で確認できます。

2. クエリの作成

可視化するデータのログを記録したら、Projects ページに移動し、+ ボタンをクリックして新しい パネル を追加し、Custom Chart を選択します。カスタムチャート デモ Workspace で手順を確認しながら進めることができます。
Blank custom chart

クエリの追加

  1. summary をクリックして historyTable を選択し、Run の履歴からデータを取得する新しいクエリを設定します。
  2. wandb.Table() をログに記録した際の キー (key) を入力します。上記のコードスニペットでは my_custom_table でした。サンプルノートブック では、キーは pr_curveroc_curve です。

Vega フィールドの設定

クエリがこれらの列を読み込むようになると、Vega フィールドのドロップダウンメニューから選択可能なオプションとして表示されます。
Pulling in columns from the query results to set Vega fields
  • x-axis: runSets_historyTable_r (再現率 / recall)
  • y-axis: runSets_historyTable_p (適合率 / precision)
  • color: runSets_historyTable_c (クラスラベル)

3. チャートのカスタマイズ

これでかなり良くなりましたが、散布図から折れ線グラフに切り替えたいと思います。Edit をクリックして、この組み込みチャートの Vega spec を変更します。カスタムチャート デモ Workspace で一緒に進めてみましょう。
Custom chart selection
可視化をカスタマイズするために Vega spec を更新しました:
  • プロット、凡例、x 軸、y 軸のタイトルを追加(各フィールドに “title” を設定)
  • “mark” の値を “point” から “line” に変更
  • 未使用の “size” フィールドを削除
PR curve Vega spec
これをプリセットとして保存し、この プロジェクト の他の場所で使用できるようにするには、ページ上部の Save as をクリックします。結果は、ROC 曲線とともに以下のようになります。
PR curve chart

ボーナス: 複合ヒストグラム (Composite Histograms)

ヒストグラムは、数値の分布を可視化して、より大規模な データセット を理解するのに役立ちます。複合ヒストグラムは、同じビンを介して複数の分布を表示し、異なる モデル 間やモデル内の異なるクラス間で 2 つ以上の メトリクス を比較することを可能にします。走行シーンの物体を検出する セマンティックセグメンテーション モデルの場合、精度 (accuracy) の最適化と Intersection over union (IoU) の最適化の効果を比較したり、モデルが車(データ内で大きく一般的な領域)と交通標識(はるかに小さく、あまり一般的でない領域)をどの程度うまく検出できるかを知りたい場合があります。デモ Colab では、10 種類の生物クラスのうち 2 つの信頼度スコアを比較できます。
Composite histogram
独自のカスタム複合ヒストグラムパネルを作成するには:
  1. Workspace または Reports 内で新しい Custom Chart パネルを作成します(「Custom Chart」可視化を追加)。右上の「Edit」ボタンを押して、任意の組み込みパネルタイプから Vega spec を変更します。
  2. その組み込み Vega spec を、こちらの Vega での複合ヒストグラム用 MVP コード に置き換えます。メインタイトル、軸タイトル、入力ドメイン、その他の詳細は、Vega の構文を使用して この Vega spec 内で直接変更できます(色を変えたり、3 つ目のヒストグラムを追加することも可能です)。
  3. 右側のクエリを修正して、W&B のログから正しいデータを読み込むようにします。summaryTable フィールドを追加し、対応する tableKeyclass_scores に設定して、Run によってログに記録された wandb.Table を取得します。これにより、ドロップダウンメニューを使用して、class_scores としてログに記録された wandb.Table の列から、2 つのヒストグラムのビンセット(red_binsblue_bins)にデータを入力できるようになります。私の例では、赤のビンに animal クラスの予測スコアを、青のビンに plant クラスの予測スコアを選択しました。
  4. プレビューに表示されるプロットに満足するまで、Vega spec とクエリの変更を続けることができます。完了したら、上部の Save as をクリックしてカスタムプロットに名前を付け、再利用できるようにします。その後、Apply from panel library をクリックしてプロットを完成させます。
非常に短い 実験 から得られた結果は以下の通りです。わずか 1,000 個のサンプルで 1 エポック だけトレーニングした結果、ほとんどの画像が植物ではないと確信しており、どの画像が動物であるかについては非常に不確実なモデルが生成されました。
Chart configuration
Chart result