Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
W&B プロジェクトでカスタムチャートを作成できます。任意のデータを表としてログし、思いどおりに可視化できます。Vega を使えば、フォント、色、ツールチップの細部まで制御できます。
- データをログする: スクリプトから、設定 と summary データをログします。
- チャートをカスタマイズする: GraphQL クエリでログしたデータを取得します。Vega という強力な可視化記法を使って、クエリ結果を可視化します。
- チャートをログする: スクリプトから
wandb.plot_table() を呼び出して、独自のプリセットを使用します。
期待したデータが表示されない場合、探している列が選択した Runs にログされていない可能性があります。チャートを Save し、Runs table に戻って、eye アイコンで選択した Runs を確認してください。
W&B には、スクリプトから直接ログできる組み込みのチャートプリセットがいくつか用意されています。これには、折れ線グラフ、散布図、棒グラフ、ヒストグラム、PR 曲線、ROC 曲線が含まれます。
折れ線グラフ
散布プロット
棒グラフ
ヒストグラム
PR曲線
ROC曲線
wandb.plot.line()カスタムの折れ線グラフをログします。これは、任意の x 軸と y 軸上の点 (x, y) を順番に結んだプロットです。with wandb.init() as run:
data = [[x, y] for (x, y) in zip(x_values, y_values)]
table = wandb.Table(data=data, columns=["x", "y"])
run.log(
{
"my_custom_plot_id": wandb.plot.line(
table, "x", "y", title="Custom Y vs X Line Plot"
)
}
)
折れ線グラフでは、任意の 2 つの次元に対する曲線をログできます。2 つの値のリストを対応させてプロットする場合は、各リストの値の数が完全に一致している必要があります (たとえば、各点には x と y の両方が必要です) 。レポートの例を見る または Google Colab ノートブックの例を試す。wandb.plot.scatter()カスタムの散布図、つまり任意の 2 軸 x、y 上の点 (x, y) のリストをログします。with wandb.init() as run:
data = [[x, y] for (x, y) in zip(class_x_prediction_scores, class_y_prediction_scores)]
table = wandb.Table(data=data, columns=["class_x", "class_y"])
run.log({"my_custom_id": wandb.plot.scatter(table, "class_x", "class_y")})
これを使用すると、任意の2つの次元について散布点をログできます。2つの値のリストを互いにプロットする場合は、リスト内の値の数が完全に一致している必要があることに注意してください (たとえば、各点には x と y の両方が必要です) 。レポートの例を見る または Google Colab ノートブックの例を試す。wandb.plot.bar()数行のコードで、ラベル付きの値のリストを棒として表示するカスタムの棒グラフをネイティブにログできます。with wandb.init() as run:
data = [[label, val] for (label, val) in zip(labels, values)]
table = wandb.Table(data=data, columns=["label", "value"])
run.log(
{
"my_bar_chart_id": wandb.plot.bar(
table, "label", "value", title="Custom Bar Chart"
)
}
)
これを使うと、任意の棒グラフをログできます。リスト内のラベルと値の数は完全に一致している必要があることに注意してください (たとえば、各データポイントにはその両方が必要です) 。レポートの例を見る または Google Colab ノートブックの例を試す。wandb.plot.histogram()わずか数行で、カスタムヒストグラムをそのままログできます。ヒストグラムは、値のリストを出現回数や頻度に応じて bins に分類して表すグラフです。たとえば、予測の信頼度スコアのリスト (scores) があり、その分布を可視化したいとします。with wandb.init() as run:
data = [[s] for s in scores]
table = wandb.Table(data=data, columns=["scores"])
run.log({"my_histogram": wandb.plot.histogram(table, "scores", title=None)})
これを使うと、任意のヒストグラムをログできます。なお、data はリストのリストで、行と列で構成される 2 次元配列を表すことを想定しています。レポートの例を見る または Google Colab ノートブックの例を試す。wandb.plot.pr_curve()1 行で 適合率-再現率曲線 を作成できます。with wandb.init() as run:
plot = wandb.plot.pr_curve(ground_truth, predictions, labels=None, classes_to_plot=None)
run.log({"pr": plot})
コードから次の情報にアクセスできる場合は、いつでもこれをログできます:
- 一連のサンプルに対するモデルの予測スコア (
predictions)
- そのサンプルに対応する正解ラベル (
ground_truth)
- (任意) ラベル/クラス名のリスト (ラベルのインデックス 0 が cat、1 が dog、2 が bird などを表す場合は
labels=["cat", "dog", "bird"...])
- (任意) プロットで可視化するラベルのサブセット (リスト形式のまま)
レポートの例を見る または Google Colab ノートブックの例を試す。wandb.plot.roc_curve()ROC curve を1行で作成します。with wandb.init() as run:
# ground_truth は正解ラベルのリスト、predictions は予測スコアのリスト
ground_truth = [0, 1, 0, 1, 0, 1]
predictions = [0.1, 0.4, 0.35, 0.8, 0.7, 0.9]
# ROC曲線のプロットを作成する
# labels はクラス名のオプションリスト、classes_to_plot は可視化するラベルのオプションのサブセット
plot = wandb.plot.roc_curve(
ground_truth, predictions, labels=None, classes_to_plot=None
)
run.log({"roc": plot})
コードから次のものにアクセスできる場合は、いつでもこれをログできます。
- ある例のセットに対するモデルの予測スコア (
predictions)
- それらの例に対応する正解ラベル (
ground_truth)
- (任意) ラベル/クラス名のリスト (ラベルインデックス 0 が cat、1 が dog、2 が bird などを表す場合は
labels=["cat", "dog", "bird"...])
- (任意) プロットに表示する、これらのラベルのサブセット (リスト形式のまま)
レポートの例を見る または Google Colab ノートブックの例を試す。
組み込みのプリセットを調整するか、新しいプリセットを作成して、チャートを保存します。チャートIDを使用して、スクリプトから直接そのカスタムプリセットにデータをログできます。サンプルの Google Colab ノートブックを試す。
# プロットする列を含む表を作成する
table = wandb.Table(data=data, columns=["step", "height"])
# 表の列をチャートのフィールドにマッピングする
fields = {"x": "step", "value": "height"}
# 表を使用して新しいカスタムチャートプリセットにデータを入力する
# 保存済みのカスタムチャートプリセットを使用するには、vega_spec_name を変更する
my_custom_chart = wandb.plot_table(
vega_spec_name="carey/new_chart",
data_table=table,
fields=fields,
)
スクリプトから次のデータ型をログして、カスタムチャートで使用できます。
- 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 で例を試す。
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"])}
)
まず新しいカスタムチャートを追加して開始し、その後クエリを編集して表示中のRunsからデータを選択します。クエリでは、GraphQLを使用して、Runs内のconfig、summary、historyフィールドからデータを取得します。
右上の Chart を選択して、デフォルトのプリセットから始めます。次に、Chart fields を選択し、クエリで取得したデータをチャート内の対応するフィールドにマッピングします。
次の画像は、メトリクスを選択し、それを下の棒グラフのフィールドにマッピングする例を示しています。
パネル上部の Edit をクリックすると、Vega の編集モードに入ります。ここでは、UI 上でインタラクティブなチャートを作成するための Vega specification を定義できます。チャートのあらゆる要素を変更できます。たとえば、タイトルを変更したり、別の配色を選んだり、曲線を連続した線ではなく点の列として表示したりできます。また、Vega の transform を使って値の配列をビニングし、ヒストグラムにするなど、データ自体を変更することもできます。パネルのプレビューはインタラクティブに更新されるため、Vega spec やクエリを編集しながら、変更の効果を確認できます。Vega documentation and tutorials を参照してください。
フィールド参照
W&B からチャートにデータを取り込むには、"${field:<field-name>}" 形式のテンプレート文字列を Vega spec 内の任意の場所に追加します。これにより、右側の Chart Fields 領域にドロップダウンが作成され、Users はそれを使って Vega にマッピングするクエリ結果の列を選択できます。
フィールドのデフォルト値を設定するには、次の構文を使用します: "${field:<field-name>:<placeholder text>}"
モーダルの下部にあるボタンを使って、特定の可視化パネルに変更を適用できます。あるいは、Vega spec を保存して、プロジェクト内の別の場所で使用することもできます。再利用可能なチャート定義を保存するには、Vega エディタ上部の 名前を付けて保存 をクリックし、プリセットに名前を付けます。
- W&Bの機械学習可視化IDE
- カスタムチャートを使ってNLPのAttentionベースモデルを可視化する
- カスタムチャートを使ってAttentionが勾配フローに与える影響を可視化する
- 任意の曲線をログする
- 誤差バー付きの棒グラフをカスタマイズする
- 独自の x-y 座標が必要なモデルの検証メトリクス (適合率-再現率曲線など) を表示する
- 2 つの異なるモデル/実験のデータ分布をヒストグラムとして重ねて表示する
- トレーニング中の複数の時点で取得したスナップショットを使って、メトリクスの変化を表示する
- W&B ではまだ利用できない独自の可視化を作成する (できればそれを広く共有する)