> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-run-filter-ui-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# コードの保存と比較

> コードの保存を有効にし、コード比較を使って W&B runs 間でコードを比較し、Jupyter セッション履歴を取得します。

このページでは、コードの保存を有効にして、W\&B runs 間で使用されたコードを比較し、Jupyter セッションで実行されたセルを確認する方法を説明します。コードを保存すると、実験の再現がしやすくなり、トレーニングコードの変更が結果にどのような影響を与えるかを把握しやすくなります。

デフォルトでは、W\&B は最新の Git コミット ハッシュのみを保存します。追加のコード機能を有効にすると、UI で実験間のコードを比較できます。

`wandb` バージョン 0.8.28 以降では、W\&B は `wandb.init()` を呼び出すメインのトレーニング ファイルのコードを保存できます。

<div id="save-library-code">
  ## ライブラリコードを保存
</div>

コードの保存を有効にすると、W\&B は `wandb.init()` を呼び出したファイルのコードを保存します。追加のライブラリコードを保存するには、3 つの方法があります。

<div id="call-log_code-after-wandbinit">
  ### `wandb.init` の後で `log_code` を呼び出す
</div>

`wandb.init()` の後で `wandb.Run.log_code(".")` を呼び出します:

```python theme={null}
import wandb

with wandb.init() as run:
  run.log_code(".")
```

<div id="pass-a-settings-object-with-code_dir">
  ### `code_dir` を設定した settings オブジェクトを渡す
</div>

`code_dir` を設定した settings オブジェクトを `wandb.init()` に渡します:

```python theme={null}
import wandb

wandb.init(settings=wandb.Settings(code_dir="."))
```

これにより、現在のディレクトリとその配下のすべてのサブディレクトリにある Python のソースコードファイルが、[artifact](/ja/models/ref/python/experiments/artifact) として保存されます。W\&B が保存するソースコードファイルのタイプや場所をより細かく指定するには、[リファレンスドキュメント](/ja/models/ref/python/experiments/run#log_code)を参照してください。

<div id="set-code-saving-in-the-ui">
  ### UIでコードの保存を設定する
</div>

プログラムからコードの保存を設定するだけでなく、UIではチームまたは組織単位でデフォルトを設定することもできます。以下のセクションでは、チームレベルおよび組織レベルの設定について説明します。

<div id="team">
  #### チーム
</div>

デフォルトでは、W\&B はすべてのチームでコードの保存を無効にしています。チームでこれを有効にするには、まず組織管理者が組織に対して有効にする必要があります。[組織](#organization)セクションをご覧ください。

チーム管理者は、チームの **Settings** ページを開き、**Privacy** セクションに移動して、そのチームの Runs に対する **Enable code saving by default** を設定できます。このオプションは、組織管理者が組織全体にコードの保存に関する制限を適用していない場合にのみ利用できます。画面の移動手順については、[チームのプライバシー設定を構成する](/ja/platform/hosting/privacy-settings#configure-privacy-settings-for-a-team)をご覧ください。

<div id="organization">
  #### 組織
</div>

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

<div id="code-comparer">
  ## コード比較
</div>

コード比較パネルには、Workspace 内で異なる W\&B runs のコードが並べて表示されます。

異なるW\&B runで使用されたコードを比較します。

1. ページの画面右上にある **Add panels** ボタンを選択します。
2. **TEXT AND CODE** のドロップダウンを展開し、**Code** を選択します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/NiSC63JCbbxJ3Isf/images/app_ui/code_comparer.png?fit=max&auto=format&n=NiSC63JCbbxJ3Isf&q=85&s=09d8c40221584e6a4b21395c971a997e" alt="コード比較パネル" width="887" height="337" data-path="images/app_ui/code_comparer.png" />
</Frame>

<div id="jupyter-session-history">
  ## Jupyter セッション履歴
</div>

W\&B は、Jupyter ノートブックのセッションで実行されたコードの履歴を保存します。Jupyter 内で `wandb.init()` を call すると、W\&B はフックを追加し、現在のセッションで実行されたコードの履歴を含む Jupyter ノートブックを自動的に保存します。

run の保存されたノートブック履歴を表示するには:

1. コードを含むプロジェクトのワークスペースにアクセスします。
2. プロジェクトのサイドバーで **Artifacts** タブを選択します。
3. **code** artifact を展開します。
4. **Files** タブを選択します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/u2rTBovWry-45m2Q/images/app_ui/jupyter_session_history.gif?s=aae185eee59f4864acfe168120d3648f" alt="Jupyter セッション履歴" width="3868" height="2574" data-path="images/app_ui/jupyter_session_history.gif" />
</Frame>

これにより、セッション中に実行されたセルと、IPython の `display` method を call して生成された出力が表示されます。これにより、特定の run で Jupyter 内のどのコードが実行されたかを正確に確認できます。可能な場合、W\&B はノートブックの最新バージョンも保存します。これは code ディレクトリ内にあります。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/u2rTBovWry-45m2Q/images/app_ui/jupyter_session_history_display.png?fit=max&auto=format&n=u2rTBovWry-45m2Q&q=85&s=dd2c256d499646ec7b6df4e83408977b" alt="Jupyter セッション出力" width="3826" height="1840" data-path="images/app_ui/jupyter_session_history_display.png" />
</Frame>
