メインコンテンツへスキップ
W&B を使用して、コードを保存し、Runs 間でコードを比較し、ローカルの変更を確認し、Jupyter セッション履歴を取得します。

コードの保存を有効にする

チームまたは組織のコードの保存を設定します。チームおよび組織での設定方法については、プライバシー設定を構成するを参照してください。
デフォルトでは、W&B はすべての Teams でコードの保存を無効にしています。チームでこれを有効にするには、まず組織管理者が組織レベルで有効にする必要があります。組織セクションをご覧ください。

チーム

チーム管理者としてチームのコードの保存を有効にするには、チームの Settings ページを開き、Privacy セクションに移動して、そのチームの Runs に対する Enable code saving by default を設定します。このオプションは、組織管理者が組織全体にコードの保存に関する制限を適用していない場合にのみ利用できます。画面の移動手順については、チームのプライバシー設定を構成するをご覧ください。

組織

組織管理者として組織のコードの保存を有効にするには、組織の Settings を開いて Privacy セクションに移動し、Enforce default code saving restrictions を有効にすることで、すべてのチームでコードの保存がデフォルトでオフのままになるよう設定します。この強制設定が有効な間、チーム管理者はチームに対して Enable code saving by default をオンにできません。組織で利用できる制御項目の一覧については、Enforce privacy settings for all teams を参照してください。

コードを保存

run を生成したソースコードを アーティファクト として取得します。コードアーティファクトは、project の Workspace 内で確認できます。 コードを保存する方法は 2 つあります。きめ細かく制御する方法と、自動的に保存する方法です。

より細かな制御

wandb.Run.log_code() を使用すると、特定の file またはディレクトリを アーティファクト としてログできます。 デフォルトでは、W&B は現在のディレクトリを走査し、.py で終わるすべての file をログします。 次の例は、wandb.Run.log_code() を使用して現在のディレクトリをログする方法を示しています。
import wandb

with wandb.init() as run:
    # 現在のディレクトリをコードアーティファクトとしてログする
    run.log_code(root=".")
次の例では、コードをログする際に含めるファイルと除外するファイルを指定するために、include_fn= パラメーターと exclude_fn= パラメーターを指定して wandb.Run.log_code() を使用する方法を示します。
import wandb

with wandb.init() as run:
    run.log_code(
         root="../",
         include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb"),
         exclude_fn=lambda path, root: os.path.relpath(path, root).startswith(
             "cache/"
         ),
    )
W&B が保存するソースコードファイルのタイプや保存場所をより細かく制御するには、リファレンス ドキュメントを参照してください。

コードを自動取得する

wandb.init(settings=wandb.Settings(code_dir=)) を使用すると、現在のディレクトリとそのサブディレクトリ内のすべてのコードを自動的に取得できます。デフォルトでは、W&B は次を取得します。
  • .py で終わるファイル
  • requirements.txt
  • Dockerfile
  • wandb/ または .wandb/ 配下にあるものはすべて除外します
次の例は、現在のディレクトリとそのサブディレクトリ内のすべてのコードを取得する方法を示しています。
import wandb

with wandb.init(settings=wandb.Settings(code_dir=".")) as run:
    # トレーニングコードをここに記述
. を、取得したいディレクトリのパスに置き換えることで、別のディレクトリを指定することもできます。

ローカルの変更を表示する

W&B では、Git リポジトリ内にステージ済みまたは未ステージの変更がある状態でコードをログすると、差分ファイルが生成され、W&B UI でその変更を表示できます。 W&B は差分ファイルを diff.patch または diff_<sha>.patch という名前で保存します。これらのファイルには、HEAD を基準とした、まだ Git にコミットされていないローカルのコード変更が含まれます。 差分ファイルを表示するには、次の手順に従います。
  1. project の Workspace にアクセスします。
  2. 左サイドバーで Workspace をクリックします。
  3. run selector で、差分を表示したい run を選択します。
  4. run の Overview ページで、Files タブを選択します。
  5. ファイルの一覧から、diff.patch または diff_<sha>.patch ファイルを選択します。
  6. 一覧からファイルを選択して、そのファイルの差分を展開します。
W&B は、Runs 間の差分表示について、unifiedsplit の 2 つのモードをサポートしています。
  • Unified view では、単一のペインに差分が表示されます。
    差分パッチの Unified view
  • Split view では、差分が 2 つのペインに横並びで表示されます。
    差分パッチの Split view
2 つの表示を切り替えるには、差分ビューの右上にある Download ボタンの下で、Unified または Split ボタンを選択します。

Jupyter セッション履歴

W&B は、Jupyter ノートブックのセッションで実行されたコードの履歴を保存します。Jupyter 内で wandb.init() を call すると、W&B はフックを追加し、現在のセッションで実行されたコードの履歴を含む Jupyter ノートブックを自動的に保存します。
  1. コードを含むプロジェクトのWorkspaceにアクセスします。
  2. プロジェクトのサイドバーで Artifacts タブを選択します。
  3. code アーティファクト を展開します。
  4. Files タブを選択します。
Jupyter セッション履歴
これにより、セッション中に実行されたセルと、IPython の display method を call して生成された出力が表示されます。これにより、特定の run で Jupyter 内のどのコードが実行されたかを正確に確認できます。可能な場合、W&B はノートブックの最新バージョンも保存します。これは code ディレクトリ内にあります。
Jupyter セッション出力

Runs 間でコードを比較

異なるW&B runで使用されたコードを比較します。
  1. ページの画面右上にある Add panels ボタンを選択します。
  2. TEXT AND CODE のドロップダウンを展開し、Code を選択します。
コード比較パネル