メインコンテンツへスキップ
実験を実行すると、メッセージがコンソールに出力されることがあります。W&B はコンソールログを取得して W&B App に表示します。これらのメッセージを使って、実験の動作をデバッグおよび監視できます。 以下のセクションでは、Runs のコンソールログを表示、設定、検索、フィルター、ダウンロード、コピーする方法について説明します。

コンソールログを表示する

run 中に生成されたメッセージを確認するには、W&B App で run のコンソールログにアクセスします。
  1. W&B App で自分のプロジェクトにアクセスします。
  2. Runs 表内の run を選択します。
  3. プロジェクトのサイドバーで Logs タブをクリックします。
W&B では、run ごとに最大 100,000 行のログが保存されます。W&B App では、一度に表示できるログは最大 10,000 行です。保存されているすべてのログ行を確認するには、ログをスクロールして古い行を表示します。

コンソールログの種類

W&B は 3 種類のコンソールログを取得し、各ログの重大度を示す接頭辞を付けます。この接頭辞により、ログをすばやく確認して、デバッグに最も関連するメッセージを特定できます。次の表は、各タイプを重大度の高い順にまとめたものです。
重大度接頭辞説明
ErrorERRORrun が正常に完了できなくなるおそれのある重大な問題です。ERROR Failed to save notebook.
WarningWARNING実行は停止しないものの、問題につながる可能性がある事項です。WARNING Found .wandb file, not streaming tensorboard metrics.
Infowandb:run の進行状況やステータスに関する更新です。wandb: Starting Run: abc123

コンソールログの設定

W&B が取得して表示するコンソール出力の種類を制御するには、run の初期化時に wandb.Settings オブジェクトを wandb.init() に渡します。関連するパラメーターには、show_errorsshow_warningsshow_infosilent があります。Settings リファレンス にはすべてのパラメーターが記載されており、SDK から生成されるため、新しいオプションが追加されても常に最新の内容が反映されます。 次の例では、W&B からの情報メッセージ、警告、エラーを Logs タブに表示するかどうかを切り替えます。silent=True を設定すると、W&B のすべてのコンソール出力を抑制できます (トレーニングスクリプトの出力を抑えたい場合に便利です) :
import wandb

settings = wandb.Settings(
    show_errors=True,
    silent=False,
    show_warnings=True,
)

with wandb.init(settings=settings) as run:
    run.log({"accuracy": 0.95})
stdout と stderr の取得 (console) 、マルチパートアップロード (console_multipartconsole_chunk_max_bytesconsole_chunk_max_seconds) 、およびトラブルシューティングについては、以下のセクションと Settings リファレンスを参照してください。分散トレーニングやその他の特殊なケースについては、run のコンソール出力が取得されないのはなぜですか? を参照してください。

マルチパート コンソールログ

デフォルトでは、W&B はスクリプトの stdout と stderr を単一の output.log ファイルとして保存し、run の終了時に アップロードします。run がアクティブな間は、Logs タブで出力がストリーミング表示されますが、output.log は run が完了するまで Files タブには表示されません。 run がまだアクティブな間にダウンロード可能なログが必要な場合、run が終了前にクラッシュする可能性がある場合、または run を再開して以前のセッションのログ出力を保持したい場合は、マルチパート コンソールログを有効にしてください。console_multipart=True (SDK v0.22.3 以降) を設定すると、SDK は logs/ 配下にタイムスタンプ付きのチャンクを書き込み、各チャンクがクローズされるたびにアップロードします。ロールオーバーは console_chunk_max_bytesconsole_chunk_max_seconds で制御します。両方が 0 の場合のデフォルトと動作については、Settings リファレンス を参照してください。
アップロードされたチャンクは不変です。以前の行を変更するターミナル制御シーケンス (たとえば、キャリッジリターンを使用するプログレスバー) は、現在のチャンクにのみ影響します。
import wandb

with wandb.init(
    project="my-project",
    settings=wandb.Settings(
        console_multipart=True,
        console_chunk_max_bytes=1_000_000,  # ~1 MB でローテート
        console_chunk_max_seconds=60,     # または60秒ごと(どちらか早い方)
    ),
) as run:
    print("Logs upload in chunks while this run is active.")
console_multipart は、wandb.init の時点で設定する必要があります。run の開始後にアップロード頻度を変更することはできません。 トラブルシューティング (コンソールの取得が無効になっている場合、分散トレーニング、再開した Runs、表示の制限) については、自分の run でコンソール出力が取得されないのはなぜですか? および run からコンソールログファイルをダウンロードするにはどうすればよいですか? を参照してください。

カスタムロギング

すでに独自のロギング設定がある場合でも、W&B と併用してそのまま使用できます。W&B はアプリケーションのコンソールログを取得しますが、独自のロギング設定に干渉することはありません。メッセージを記録するには、Python に組み込まれている print() 関数または logging モジュールを使用できます。
import wandb

with wandb.init(project="my-project") as run:
    for i in range(100, 1000, 100):
        # W&B にログを記録し、コンソールに出力します
        run.log({"epoch": i, "loss": 0.1 * i})
        print(f"epoch: {i} loss: {0.1 * i}")
コンソールログは、次のように表示されます。
1 epoch:  100 loss: 1.3191105127334595
2 epoch:  200 loss: 0.8664389848709106
3 epoch:  300 loss: 0.6157898902893066
4 epoch:  400 loss: 0.4961796700954437
5 epoch:  500 loss: 0.42592573165893555
6 epoch:  600 loss: 0.3771176040172577
7 epoch:  700 loss: 0.3393910825252533
8 epoch:  800 loss: 0.3082585036754608
9 epoch:  900 loss: 0.28154927492141724

タイムスタンプ

W&B は各コンソールログのエントリに自動的にタイムスタンプを追加します。これにより、各ログメッセージがいつ生成されたかを確認できます。 コンソールログでタイムスタンプの表示/非表示を切り替えるには、コンソールログ ページで Timestamp visible のドロップダウン リストを選択します。

コンソールログを検索する

関連するエントリをすばやく見つけるには、コンソールログページの検索バーを使用して、キーワードでログをフィルターできます。特定の用語、ラベル、エラーメッセージを検索できます。

カスタムラベルでフィルターする

x_ で始まるパラメーター (x_label など) はパブリックプレビューです。フィードバックを送るには、W&B repository の GitHub issue を作成してください。
コンソールログは、wandb.Settingsx_label に引数として渡したラベルに基づいてフィルターできます。コンソールログページの検索バーにラベルを入力してください。
import wandb

# プライマリノードで run を初期化する
with wandb.init(
    entity="[ENTITY-NAME]",
    project="[PROJECT-NAME]",
    settings=wandb.Settings(
        x_label="[CUSTOM-LABEL]"  # (オプション) ログのフィルタリング用カスタムラベル
    )
) as run:
    # ここにコードを記述する

コンソールログをダウンロードする

オフラインで分析したり共有したりするためにログをローカルに保存するには、W&B App で run のコンソールログをダウンロードします。
  1. W&B App のプロジェクトにアクセスします。
  2. Runs 表で run を選択します。
  3. プロジェクトのサイドバーで Logs タブをクリックします。
  4. コンソールログページでダウンロードボタンをクリックします。

コンソールログをコピーする

別の tool やメッセージにログを貼り付けるには、W&B App で run のコンソールログをコピーします。
  1. W&B App のプロジェクトにアクセスします。
  2. Runs 表内の run を選択します。
  3. プロジェクトのサイドバーにある Logs タブをクリックします。
  4. コンソールログページにあるコピーボタンをクリックします。