Skip to main content
W&B Multi-tenant SaaS では、埋め込み TensorBoard を利用できます。
TensorBoard のログをクラウドにアップロードして、結果を同僚やクラスメートとすばやく共有し、分析結果を一元的に管理しましょう。
TensorBoard インテグレーションのコード

利用開始

import wandb

# `sync_tensorboard=True`を指定してwandb runを開始する
wandb.init(project="my-project", sync_tensorboard=True) as run:
  # TensorBoardを使用したトレーニングコード
  ...

TensorBoard インテグレーションの run の例をご覧ください。 run が完了すると、W&B で TensorBoard のイベントファイルにアクセスできるようになり、システムの CPU や GPU の使用率、git の状態、run で使用されたターミナルコマンドなどの追加情報とあわせて、ネイティブの W&B チャートでメトリクスを可視化できます。
W&B は、TensorFlow のすべてのバージョンで TensorBoard をサポートしています。さらに、PyTorch および TensorBoardX でも TensorBoard 1.14 以降をサポートしています。

よくある質問

TensorBoard にログされていないメトリクスを W&B にログするにはどうすればよいですか?

TensorBoard にログされていない追加のカスタムメトリクスをログする必要がある場合は、コード内で wandb.Run.log() を呼び出します。run.log({"custom": 0.8}) TensorBoard を Sync している場合、run.log()step argument を設定する機能は無効になります。別の step 数を設定したい場合は、次のように step メトリクスと一緒にメトリクスをログできます。 run.log({"custom": 0.8, "global_step": global_step})

wandb と一緒に使う場合、TensorBoard はどのように設定すればよいですか?

TensorBoard のパッチ方法をより細かく制御したい場合は、wandb.initsync_tensorboard=True を渡す代わりに、wandb.tensorboard.patch を呼び出せます。
import wandb

wandb.tensorboard.patch(root_logdir="<logging_directory>")
run = wandb.init()

# wandb runを終了してtensorboardのログをW&Bにアップロードする(Notebookで実行している場合)
run.finish()
この method に tensorboard_x=False を渡すと、標準の TensorBoard に確実にパッチが適用されます。PyTorch で TensorBoard > 1.14 を使用している場合は、pytorch=True を渡すことで確実にパッチを適用できます。これらのオプションには、import されている各ライブラリのバージョンに応じて適切なデフォルト値が自動的に設定されます。 デフォルトでは、tfevents ファイルと .pbtxt ファイルも Sync します。これにより、TensorBoard インスタンスを代わりに起動できるようになります。run ページには TensorBoard タブ が表示されます。この動作は、wandb.tensorboard.patchsave=False を渡すことで無効にできます
import wandb

run = wandb.init()
wandb.tensorboard.patch(save=False, tensorboard_x=True)

# ノートブックで実行している場合、TensorBoardのログをW&Bにアップロードするためにwandb runを終了する
run.finish()
tf.summary.create_file_writer を呼び出す前、または torch.utils.tensorboard を介して SummaryWriter を作成する前に、必ず wandb.init()wandb.tensorboard.patch のいずれかを呼び出してください。

過去の TensorBoard run を Sync するにはどうすればよいですか?

ローカルに保存されている既存の tfevents ファイルがあり、それらを W&B にインポートしたい場合は、wandb sync log_dir を実行します。ここで、log_dirtfevents ファイルを含むローカルディレクトリです。

TensorBoard で Google Colab や Jupyter を使用するにはどうすればよいですか

Jupyter または Colab のノートブックでコードを実行している場合は、トレーニングの最後に必ず wandb.Run.finish() を呼び出してください。これにより wandb run が終了し、TensorBoard のログが W&B にアップロードされて可視化できるようになります。.py スクリプトを実行している場合は、スクリプトの終了時に wandb も自動的に終了するため、これは必要ありません。 ノートブック環境でシェルコマンドを実行するには、!wandb sync directoryname のように、先頭に ! を付ける必要があります。

PyTorch を TensorBoard で使用するにはどうすればよいですか?

PyTorch の TensorBoard インテグレーションを使用している場合は、PyTorch Profiler の JSON ファイルを手動でアップロードする必要がある場合があります。
with wandb.init(project="my-project", sync_tensorboard=True) as run:
    run.save(glob.glob(f"runs/*.pt.trace.json")[0], base_path=f"runs")

クラウドに保存されている tfevents ファイルを Sync できますか?

wandb 0.20.0 以降では、S3、GCS、Azure に保存されている tfevents ファイルの Sync をサポートしています。wandb は各クラウドプロバイダーのデフォルト認証情報を使用します。対応するコマンドは次の表のとおりです。
クラウドプロバイダー認証情報ログディレクトリー形式
S3aws configures3://bucket/path/to/logs
GCSgcloud auth application-default logings://bucket/path/to/logs
Azureaz login1az://account/container/path/to/logs

Footnotes

  1. あわせて、環境変数 AZURE_STORAGE_ACCOUNTAZURE_STORAGE_KEY も設定する必要があります。