メインコンテンツへスキップ
メトリクスまたは設定パラメーターに基づいて W&B の Runs を色分けすると、視覚的にわかりやすい折れ線グラフとプロット凡例を作成できます。パフォーマンス メトリクス (最大値、最小値、または最新の値) に応じて Runs に色を付けることで、experiment 全体のパターンや傾向を特定できます。W&B は、選択したパラメーターの値に基づいて Runs を色分けされた バケット に自動的にグループ化します。 Runs にメトリクスベースまたは設定ベースの色を使用するには、2 つの Settings を設定する必要があります:“

Key-based colors を有効にする

  1. W&B のプロジェクトにアクセスします。
  2. プロジェクトのサイドバーから Workspace タブを選択します。
  3. 画面右上の Settings アイコンをクリックします。
  4. ドロワーで Runs を選択します。
  5. Run colors セクションで、Key-based colors を選択します。
  6. 以下のオプションを設定します。
    • Key ドロップダウンで、run に色を割り当てる際に使用するメトリクスを選択します。
    • Y value ドロップダウンで、run に色を割り当てる際に使用する y 値を選択します。
    • バケット数を 2 ~ 8 に設定します。
Key-based colors を使用すると、run の色のカスタマイズ オプションは使用できません。
以下のセクションでは、メトリクスと y 値の設定方法、および run に色を割り当てるために使用するバケットのカスタマイズ方法について説明します。

例: 損失メトリクスを使用したキーに基づく色分け

この例のプロットでは、run はグラデーションで色分けされ、濃い色は損失値が高いことを、薄い色は損失値が低いことを示します。Y 値 は latest に設定されており、各 run の最新の損失値を使用します。

メトリクスを設定する

Key ドロップダウンのメトリクスオプションは、W&B にログしたキーと値のペアと、W&B で定義されたデフォルトメトリクスに基づいています。

デフォルトメトリクス

  • Relative Time (Process): run の相対時間です。run の開始からの経過秒数で表されます。
  • Relative Time (Wall): run の相対時間です。run の開始からの経過秒数を、ウォールクロック時間に合わせて調整したものです。
  • Wall Time: run のウォールクロック時間です。エポックからの経過秒数で表されます。
  • Step: run の step 番号です。通常は、トレーニングや評価の進捗をトラッキングするために使用されます。

カスタムメトリクス

トレーニングスクリプトまたは評価スクリプトでログしたカスタムメトリクスに基づいて、run を色分けし、意味のあるプロットの凡例を作成できます。カスタムメトリクスはキーと値のペアとしてログされ、キーはメトリクス名、値はそのメトリクスの値です。 たとえば、次のコードスニペットでは、トレーニングループ中に accuracy ("acc" キー) と損失 ("loss" キー) をログします。
import wandb
import random

epochs = 10

with wandb.init(project="basic-intro") as run:
  # トレーニングループでメトリクスをログするブロックのシミュレーション
  offset = random.random() / 5
  for epoch in range(2, epochs):
      acc = 1 - 2 ** -epoch - random.random() / epoch - offset
      loss = 2 ** -epoch + random.random() / epoch + offset

      # スクリプトからW&Bにメトリクスをログする
      run.log({"acc": acc, "loss": loss})
Key ドロップダウンでは、"acc""loss" のどちらも選択できます。

設定キーを設定する

Key ドロップダウンの設定オプションは、W&B run の初期化時に config パラメーターへ渡すキーと値のペアに基づいています。設定キーは通常、トレーニングや評価スクリプトで使用するハイパーパラメーターやその他の設定をログするために使われます。
import wandb

config = {
  "learning_rate": 0.01,
  "batch_size": 32,
  "optimizer": "adam"
}

with wandb.init(project="basic-intro", config=config) as run:
  # トレーニングコードをここに記述
  pass
Key ドロップダウンでは、"learning_rate""batch_size""optimizer" を選択できます。

Y 値を設定する

次のオプションから選択できます。
  • Latest: 各線の最後にログされたstepにおける Y 値に基づいて色を決定します。
  • Max: メトリクスに対してログされた最も高い Y 値に基づいて色を決定します。
  • Min: メトリクスに対してログされた最も低い Y 値に基づいて色を決定します。

バケットをカスタマイズする

バケットとは、選択したメトリクスまたは設定キーに基づいて、W&B が run を分類するために使用する値の範囲です。バケットは、指定したメトリクスまたは設定キーの値域全体にわたって均等に分割され、各バケットには固有の色が割り当てられます。そのバケットの範囲に入る Runs は、その色で表示されます。 次の例を見てみましょう。
色分けされた run
  • Key"Accuracy" (省略形は "acc") に設定されています。
  • Y 値"Max" に設定されています
この設定では、W&B は各 run を accuracy の値に基づいて色分けします。色は薄い黄色から濃い色まで変化します。薄い色は accuracy が低いことを示し、濃い色は accuracy が高いことを示します。 このメトリクスには 6 つのバケットが定義されており、各バケットは accuracy の値の範囲を表します。Buckets セクションでは、次の範囲のバケットが定義されています。
  • バケット 1: (Min - 0.7629)
  • バケット 2: (0.7629 - 0.7824)
  • バケット 3: (0.7824 - 0.8019)
  • バケット 4: (0.8019 - 0.8214)
  • バケット 5: (0.8214 - 0.8409)
  • バケット 6: (0.8409 - Max)
以下の折れ線グラフでは、accuracy が最も高い run (0.8232) は濃い紫色 (バケット 5) で表示され、accuracy が最も低い run (0.7684) は薄いオレンジ色 (バケット 2) で表示されています。その他の Runs も accuracy の値に基づいて色分けされており、色のグラデーションによって相対的なパフォーマンスが示されます。
色分けされた run のプロット