メインコンテンツへスキップ
トレーニング中に時間の経過とともに変化する値に加えて、モデルや前処理ステップを要約する単一の値を追跡することが重要な場合がよくあります。この情報は、W&B Run の summary 辞書に ログ を記録します。Run の summary 辞書は、numpy 配列、PyTorch テンソル、または TensorFlow テンソルを扱うことができます。値がこれらの型のいずれかである場合、テンソル全体をバイナリファイルとして保存し、最小値、平均値、分散、パーセンタイルなどの上位レベルの メトリクス を summary オブジェクトに保存します。 wandb.Run.log() で最後に ログ 記録された値は、自動的に W&B Run の summary 辞書として設定されます。summary メトリクス の辞書が変更されると、前の値は失われます。 次の コードスニペット は、カスタムの summary メトリクス を W&B に提供する方法を示しています。
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:
          # summaryを更新して最高精度を記録
          run.summary["best_accuracy"] = test_accuracy
          best_accuracy = test_accuracy
トレーニング終了後に、既存の W&B Run の summary 属性を更新することもできます。W&B Public API を使用して summary 属性を更新します。
api = wandb.Api()
run = api.run("username/project/run_id")
run.summary["tensor"] = np.random.random(1000)
run.summary.update()

summary メトリクスのカスタマイズ

カスタム summary メトリクス は、run.summary 内でトレーニングの最適なステップにおける モデル のパフォーマンスを取得するのに役立ちます。例えば、最終的な値ではなく、最大精度や最小損失値をキャプチャしたい場合があります。 デフォルトでは、summary は history からの最終値を使用します。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")

    # 精度の最小値と最大値を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)

summary メトリクスの表示

summary の値は、Run の Overview ページまたは プロジェクト の Runs テーブルで確認できます。
  1. W&B App に移動します。
  2. Workspace タブを選択します。
  3. Runs のリストから、summary の値を ログ 記録した Run の名前をクリックします。
  4. Overview タブを選択します。
  5. Summary セクションで summary の値を確認します。
Run overview