メインコンテンツへスキップ
Jupyter で W&B を使用すると、ノートブックを離れることなくインタラクティブな可視化を利用できます。カスタム分析、Experiments、プロトタイプを組み合わせ、すべてを完全にログできます。

Jupyter notebook で W&B を使用するユースケース

  1. 反復的な実験: 実験を何度も実行し、パラメーターを調整しながら、途中で手作業でメモを取らなくても、実行したすべての run を自動的に W&B に保存できます。
  2. コード保存: モデルを再現する際、notebook のどのセルが、どの順序で実行されたのかを把握するのは困難です。settings page で コード保存 を有効にすると、各実験のセル実行記録を保存できます。
  3. カスタム分析: run が W&B にログされると、API から dataframe を取得してカスタム分析を行い、その結果を W&B にログして保存し、Reports で共有するのが簡単になります。

ノートブックで始める

以下のコードをノートブックの先頭で実行して、W&B をインストールし、アカウントを連携します。
!pip install wandb -qqq
import wandb
wandb.login()
次に、実験を設定し、ハイパーパラメーターを保存します。
wandb.init(
    project="jupyter-projo",
    config={
        "batch_size": 128,
        "learning_rate": 0.01,
        "dataset": "CIFAR-100",
    },
)
wandb.init() を実行した後、新しいセルで %%wandb を使うと、ノートブック内でライブグラフを確認できます。このセルを複数回実行すると、データが run に追加されます。
%%wandb

# トレーニングループをここに記述
この例のノートブックで実際に試してみてください。
Jupyter W&B ウィジェット

W&B のライブインターフェイスをノートブックに直接表示する

%wandb マジックを使うと、既存のダッシュボード、Sweeps、またはreportをノートブックに直接表示することもできます。
# プロジェクトのワークスペースを表示する
%wandb USERNAME/PROJECT
# 単一の run を表示する
%wandb USERNAME/PROJECT/runs/RUN_ID
# sweep を表示する
%wandb USERNAME/PROJECT/sweeps/SWEEP_ID
# report を表示する
%wandb USERNAME/PROJECT/reports/REPORT_ID
# 埋め込み iframe の高さを指定する
%wandb USERNAME/PROJECT -h 2048
%%wandb または %wandb マジックの代わりに、wandb.init() を実行した後、任意のセルの最後で wandb.Run.finish() を実行すると、インライングラフを表示できます。また、API から返された任意の report、sweep、または run オブジェクトに対して ipython.display(...) を呼び出すこともできます。
import wandb
from IPython.display import display
# run を初期化する
run = wandb.init()

# セルが run.finish() を出力すると、ライブグラフが表示されます
run.finish()
W&B でできることをもっと知りたい方は、データやメディアのログ方法ガイドを参照するか、お気に入りの ML ツールキットと統合する方法を確認してください。あるいは、リファレンスドキュメントサンプルリポジトリを直接参照することもできます。

W&B の Jupyter 向け追加機能

  1. Colab での簡単な認証: Colab で初めて wandb.init() を呼び出す際、ブラウザで W&B にログイン済みであれば、ランタイムは自動的に認証されます。run ページの Overview タブには、Colab へのリンクが表示されます。
  2. Jupyter マジック: ノートブック内でダッシュボード、Sweeps、レポート を直接表示できます。%wandb マジック は、プロジェクト、Sweeps、レポート へのパスを受け取り、W&B のインターフェースをノートブック内に直接表示します。
  3. Docker 化された Jupyter の起動: wandb docker --jupyter を実行すると、Docker コンテナーを起動し、その中にコードをマウントし、Jupyter がインストールされていることを確認したうえで、ポート 8888 で起動します。
  4. セルを任意の順序で安心して実行: デフォルトでは、run を finished としてマークするのは、次に wandb.init() が呼び出されるときです。これにより、複数のセル (たとえば、1 つはデータの準備、1 つはトレーニング、1 つはテスト) を好きな順序で実行しても、それらすべてを同じ run にログできます。User Settings でコード保存を有効にすると、実行されたセルも、実行順および実行時の状態のままログされるため、どれほど非線形なパイプラインでも再現できるようになります。Jupyter ノートブックで run を手動で完了としてマークするには、wandb.Run.finish() を呼び出します。
import wandb

run = wandb.init()

# トレーニングスクリプトとログ処理をここに記述

run.finish()