メインコンテンツへスキップ
トレーニング中に時間とともに変化する値に加えて、モデルや前処理 step を要約する単一の値をトラッキングすることが重要になる場合がよくあります。この情報は、W&B Run の summary 辞書にログします。Run の summary 辞書では、numpy 配列、PyTorch テンソル、TensorFlow テンソルを扱えます。値がこれらのタイプのいずれかである場合、テンソル全体をバイナリファイルとして永続化し、min、mean、variance、percentiles などの高レベルなメトリクスを summary オブジェクトに保存します。 wandb.Run.log() で最後にログされた値は、自動的に W&B Run の summary 辞書に設定されます。summary メトリクスの辞書を変更すると、以前の値は失われます。 次のコードスニペットは、W&B にカスタム summary メトリクスを提供する方法を示しています。
import wandb
import argparse

with wandb.init(config=args) as run:
  best_accuracy = 0
  for epoch in range(1, args.epochs + 1):
      test_loss, test_accuracy = test()
      if test_accuracy > best_accuracy:
          run.summary["best_accuracy"] = test_accuracy
          best_accuracy = test_accuracy
既存の W&B Run の summary 属性は、トレーニング完了後に更新できます。summary 属性を更新するには、W&B Public API を使用します。
api = wandb.Api()
run = api.run("username/project/run_id")
run.summary["tensor"] = np.random.random(1000)
run.summary.update()

サマリーメトリクスをカスタマイズする

カスタムサマリーメトリクスを使用すると、トレーニング中の最良のstepにおけるモデル性能を run.summary に記録できます。たとえば、最終値ではなく、精度の最大値や損失の最小値を記録したい場合があります。 デフォルトでは、summary は履歴の最後の値を使用します。サマリーメトリクスをカスタマイズするには、define_metricsummary 引数を渡します。指定できる値は次のとおりです。
  • "min"
  • "max"
  • "mean"
  • "best"
  • "last"
  • "none"
"best" を使用できるのは、省略可能な objective 引数も "minimize" または "maximize" に設定した場合のみです。 次の例では、損失と精度の最小値および最大値を summary に追加します。
import wandb
import random

random.seed(1)

with wandb.init() as run:
    # 損失のsummaryの最小値と最大値
    run.define_metric("loss", summary="min")
    run.define_metric("loss", summary="max")

    # accuracyのsummaryの最小値と最大値
    run.define_metric("acc", summary="min")
    run.define_metric("acc", summary="max")

    for i in range(10):
        log_dict = {
            "loss": random.uniform(0, 1 / (i + 1)),
            "acc": random.uniform(1 / (i + 1), 1),
        }
        run.log(log_dict)

サマリーメトリクスを表示

run の Overview ページまたはプロジェクトの Runs 表で summary 値を表示します。
  1. W&B App にアクセスします。
  2. プロジェクトのサイドバーから Workspace タブを選択します。
  3. summary 値をログした run をクリックします。run ページが開き、デフォルトで Overview タブが表示されます。
  4. Summary セクションで summary 値を確認します。
Run Overview