> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# MMEngine

> WandbVisBackend を通じて OpenMMLab の MMEngine で W&B を使用し、トレーニングのメトリクス、設定、可視化データをログします。

このページでは、OpenMMLab の MMEngine で W\&B を使用して、トレーニング Runs をトラッキングおよび可視化する方法を紹介します。MMEngine または OpenMMLab のコンピュータビジョンライブラリを使用してディープラーニングモデルをトレーニングしており、メトリクス、設定、可視化データを W\&B にログしたい場合に役立ちます。

[OpenMMLab](https://github.com/open-mmlab) による MMEngine は、PyTorch ベースのディープラーニングモデルをトレーニングするための基盤ライブラリです。MMEngine は OpenMMLab のアルゴリズムライブラリ向けにトレーニングアーキテクチャを実装しており、OpenMMLab 内の 30 を超えるアルゴリズムライブラリに対して、統一された実行基盤を提供します。中核となるコンポーネントには、トレーニングエンジン、評価エンジン、モジュール管理が含まれます。

MMEngine は、専用の [`WandbVisBackend`](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.visualization.WandbVisBackend.html#mmengine.visualization.WandbVisBackend) を通じて [W\&B](https://wandb.ai/site) と直接統合されており、これを使用して次のことができます。

* トレーニングおよび評価のメトリクスをログする。
* 実験の設定をログし、管理する。
* グラフ、画像、スカラーなどの追加データをログする。

<div id="get-started">
  ## はじめに
</div>

`openmim` と `wandb` をインストールします。

<Tabs>
  <Tab title="コマンドライン">
    ```bash theme={null}
    pip install -q -U openmim wandb
    ```
  </Tab>

  <Tab title="ノートブック">
    ```bash theme={null}
    !pip install -q -U openmim wandb
    ```
  </Tab>
</Tabs>

次に、`mim` を使って `mmengine` と `mmcv` をインストールします。

<Tabs>
  <Tab title="コマンドライン">
    ```bash theme={null}
    mim install -q mmengine mmcv
    ```
  </Tab>

  <Tab title="ノートブック">
    ```bash theme={null}
    !mim install -q mmengine mmcv
    ```
  </Tab>
</Tabs>

<div id="use-the-wandbvisbackend-with-mmengine-runner">
  ## MMEngine runner で `WandbVisBackend` を使用する
</div>

このセクションでは、[`mmengine.runner.Runner`](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.runner.Runner.html#mmengine.runner.Runner) と `WandbVisBackend` を組み合わせた一般的な workflow を紹介します。visualizer は W\&B バックエンドをラップし、MMEngine runner がトレーニング中のログを W\&B にルーティングできるようにします。

1. 可視化設定から `visualizer` を定義します。visualizer は、runner が設定済みのバックエンドにログを送信するために使用します。

   ```python theme={null}
   from mmengine.visualization import Visualizer

   # 可視化設定を定義する
   visualization_cfg = dict(
       name="wandb_visualizer",
       vis_backends=[
           dict(
               type='WandbVisBackend',
               init_kwargs=dict(project="mmengine"),
           )
       ],
       save_dir="runs/wandb"
   )

   # 可視化設定から visualizer を取得する
   visualizer = Visualizer.get_instance(**visualization_cfg)
   ```

   `init_kwargs` には、[W\&B run の初期化](/ja/models/ref/python/functions/init)の入力パラメーターとして渡す引数の辞書を指定します。

2. `visualizer` を指定して `runner` を初期化し、`runner.train()` を呼び出してトレーニングを開始します。runner は visualizer を使用して、メトリクスと設定を W\&B にストリーミングします。

   ```python theme={null}
   from mmengine.runner import Runner

   # PyTorch 用のトレーニングヘルパーである mmengine Runner を構築する
   runner = Runner(
       model,
       work_dir='runs/gan/',
       train_dataloader=train_dataloader,
       train_cfg=train_cfg,
       optim_wrapper=opt_wrapper_dict,
       visualizer=visualizer, # visualizer を渡す
   )

   # トレーニングを開始する
   runner.train()
   ```

<div id="use-the-wandbvisbackend-with-openmmlab-computer-vision-libraries">
  ## OpenMMLab のコンピュータビジョンライブラリで `WandbVisBackend` を使用する
</div>

[MMDetection](https://mmdetection.readthedocs.io/) などの OpenMMLab コンピュータビジョンライブラリで実験をトラッキングするために、`WandbVisBackend` を使用することもできます。次の例では、既存の visualizer が W\&B にログするように、ベース設定の `vis_backends` エントリを上書きしています。

```python theme={null}
# デフォルトのランタイム設定から基本設定を継承する
_base_ = ["../_base_/default_runtime.py"]

# 基本設定の `visualizer` の `vis_backends` に
# `WandbVisBackend` の設定 dictionary を割り当てる
_base_.visualizer.vis_backends = [
    dict(
        type='WandbVisBackend',
        init_kwargs={
            'project': 'mmdet',
            'entity': 'geekyrakshit'
        },
    ),
]
```
