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

Jupyter Notebook での W&B のユースケース

  1. 反復的な実験: パラメータを調整しながら実験を実行・再実行し、その過程で手作業のメモを取らなくても、実行したすべての run が自動的に W&B に保存されます。
  2. コードの保存: モデルを再現しようとするとき、Notebook のどのセルがどの順序で実行されたかを把握するのは困難です。settings page で code saving を有効にして、各実験のセル実行履歴を保存します。
  3. カスタム解析: run が W&B に記録されると、API から簡単にデータフレームを取得してカスタム解析を実行でき、さらにその結果を W&B にログして保存し、レポートとして共有できます。

ノートブックで始める

ノートブックで次のコードを実行して、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 マジックコマンドを使ってノートブック内に直接表示することもできます。
# プロジェクトのワークスペースを表示する
%wandb USERNAME/PROJECT
# 単一のrunを表示する
%wandb USERNAME/PROJECT/runs/RUN_ID
# スイープを表示する
%wandb USERNAME/PROJECT/sweeps/SWEEP_ID
# レポートを表示する
%wandb USERNAME/PROJECT/reports/REPORT_ID
# 埋め込みiframeの高さを指定する
%wandb USERNAME/PROJECT -h 2048
%%wandb%wandb マジックの代わりとして、wandb.init() を実行したあとに、任意のセルの末尾で wandb.Run.finish() を呼び出すと、セル内にグラフをインライン表示できます。また、API から返される任意のレポート、スイープ、run オブジェクトに対して ipython.display(...) を呼び出すこともできます。
import wandb
from IPython.display import display
# runを初期化する
run = wandb.init()

# セルがrun.finish()を出力すると、ライブグラフが表示される
run.finish()
W&B で何ができるかもっと知りたい方は、データやメディアをログするためのガイドを参照したり、お好みの ML ツールキットと W&B をインテグレーションする方法を学んだり、あるいはそのままリファレンスドキュメントサンプル集のリポジトリに飛び込んでみてください。

W&B におけるその他の Jupyter 機能

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

run = wandb.init()

# 学習スクリプトとログの記述はここに

run.finish()