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

キーベースのカラーを有効にする

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

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

このプロット例では、より濃い色がより大きい損失値を、より薄い色がより小さい損失値を表すグラデーションを使って run が色分けされています。Y 軸の値は、各 run の直近の損失値を使用するために latest に設定されています。

メトリクスを設定する

Key ドロップダウンに表示されるメトリクスのオプションは、W&B にログしたキーと値のペアおよび W&B が定義するデフォルトメトリクスから生成されます。

デフォルトメトリクス

  • Relative Time (Process): run の相対時間(プロセス時間)。run の開始からの経過秒数で表されます。
  • Relative Time (Wall): run の相対時間(ウォールクロック時間)。run の開始からの経過秒数をウォールクロック時間に基づいて補正した値です。
  • Wall Time: run のウォールクロック時刻。エポックからの経過秒数で表されます。
  • Step: run のステップ番号。通常は学習または評価の進行状況を追跡するために使用されます。

カスタムメトリクス

各 run に色を付け、学習または評価スクリプトでログされたカスタムメトリクスに基づいて意味のあるプロットの凡例を作成します。カスタムメトリクスはキーと値のペアとしてログされ、キーはメトリクス名、値はそのメトリクスの値です。 たとえば、次のコードスニペットは、学習ループ中に精度("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: 各線について、最後に記録されたステップでの y 値に基づいて色を決定します。
  • Max: 指標に対して記録された y 値の最大値に基づいて色を決定します。
  • Min: 指標に対して記録された y 値の最小値に基づいて色を決定します。

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

バケットは、選択した指標や設定キーに基づいて run を分類するために、W&B が使用する値の範囲です。バケットは、指定した指標または設定キーの値の範囲全体に均等に分布し、それぞれのバケットには一意の色が割り当てられます。そのバケットの範囲に入る run は、その色で表示されます。 次の例を見てみましょう:
Color coded runs
  • Key"Accuracy"(省略形は "acc")に設定されています。
  • Y value"Max" に設定されています。
この設定では、W&B は各 run を Accuracy の値に基づいて色分けします。色は薄い黄色から濃い色まで変化します。薄い色は低い Accuracy の値を表し、濃い色は高い Accuracy の値を表します。 この指標には 6 つのバケットが定義されており、それぞれのバケットは Accuracy 値の範囲を表します。Buckets セクション内では、次のバケット範囲が定義されています:
  • Bucket 1: (Min - 0.7629)
  • Bucket 2: (0.7629 - 0.7824)
  • Bucket 3: (0.7824 - 0.8019)
  • Bucket 4: (0.8019 - 0.8214)
  • Bucket 5: (0.8214 - 0.8409)
  • Bucket 6: (0.8409 - Max)
次の折れ線グラフでは、最も高い Accuracy (0.8232) を持つ run は濃い紫色 (Bucket 5) で表示され、最も低い Accuracy (0.7684) を持つ run は薄いオレンジ色 (Bucket 2) で表示されています。その他の run もそれぞれの Accuracy の値に基づいて色分けされており、色のグラデーションによって相対的な性能が示されています。
Color coded runs plot