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

# MMEngine

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

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

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

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

<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">
  ## `WandbVisBackend` を MMEngine Runner で使用する
</div>

このセクションでは、[`mmengine.runner.Runner`](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.runner.Runner.html#mmengine.runner.Runner) を使って `WandbVisBackend` を利用する一般的なワークフローを説明します。

1. 可視化設定から `visualizer` を定義します。

   ```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)
   ```

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

2. `visualizer` を指定して `runner` を初期化し、`runner.train()` を呼び出します。

   ```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>

`WandbVisBackend`は、[MMDetection](https://mmdetection.readthedocs.io/) などのOpenMMLabのコンピュータビジョンライブラリでExperimentsを管理する際にも、簡単に使用できます。

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

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