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

> Utilisez W&B avec MMEngine d'OpenMMLab via WandbVisBackend pour journaliser les métriques d'entraînement, les configurations et les enregistrements visuels.

MMEngine d'[OpenMMLab](https://github.com/open-mmlab) est une bibliothèque de base pour entraîner des modèles de deep learning basés sur PyTorch. MMEngine met en œuvre une architecture d'entraînement de nouvelle génération pour la bibliothèque d'algorithmes d'OpenMMLab, en fournissant une base d'exécution unifiée pour plus de 30 bibliothèques d'algorithmes au sein d'OpenMMLab. Ses composants principaux incluent le moteur d'entraînement, le moteur d'évaluation et la gestion des modules.

[W\&B](https://wandb.ai/site) est directement intégré à MMEngine via un [`WandbVisBackend`](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.visualization.WandbVisBackend.html#mmengine.visualization.WandbVisBackend) dédié, qui peut être utilisé pour

* journaliser les métriques d'entraînement et d'évaluation.
* journaliser et gérer les configurations d'expérience.
* journaliser des enregistrements supplémentaires, tels que des graphes, des images, des scalaires, etc.

<div id="get-started">
  ## Prise en main
</div>

Installez `openmim` et `wandb`.

<Tabs>
  <Tab title="Ligne de commande">
    ```bash theme={null}
    pip install -q -U openmim wandb
    ```
  </Tab>

  <Tab title="Notebook">
    ```bash theme={null}
    !pip install -q -U openmim wandb
    ```
  </Tab>
</Tabs>

Installez ensuite `mmengine` et `mmcv` avec `mim`.

<Tabs>
  <Tab title="Ligne de commande">
    ```bash theme={null}
    mim install -q mmengine mmcv
    ```
  </Tab>

  <Tab title="Notebook">
    ```bash theme={null}
    !mim install -q mmengine mmcv
    ```
  </Tab>
</Tabs>

<div id="use-the-wandbvisbackend-with-mmengine-runner">
  ## Utiliser `WandbVisBackend` avec le Runner MMEngine
</div>

Cette section montre un flux de travail type avec `WandbVisBackend` en utilisant [`mmengine.runner.Runner`](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.runner.Runner.html#mmengine.runner.Runner).

1. Définissez un `visualizer` à partir d'une configuration de visualisation.

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

   # définir la configuration de visualisation
   visualization_cfg = dict(
       name="wandb_visualizer",
       vis_backends=[
           dict(
               type='WandbVisBackend',
               init_kwargs=dict(project="mmengine"),
           )
       ],
       save_dir="runs/wandb"
   )

   # obtenir le visualizer à partir de la configuration de visualisation
   visualizer = Visualizer.get_instance(**visualization_cfg)
   ```

   <Note>
     Passez à `init_kwargs` un dictionnaire d'arguments correspondant aux paramètres d'entrée de [l'initialisation d'un run W\&B](/fr/models/ref/python/functions/init).
   </Note>

2. Initialisez un `runner` avec le `visualizer`, puis appelez `runner.train()`.

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

   # construire le Runner mmengine, un utilitaire d'entraînement pour PyTorch
   runner = Runner(
       model,
       work_dir='runs/gan/',
       train_dataloader=train_dataloader,
       train_cfg=train_cfg,
       optim_wrapper=opt_wrapper_dict,
       visualizer=visualizer, # passer le visualizer
   )

   # démarrer l'entraînement
   runner.train()
   ```

<div id="use-the-wandbvisbackend-with-openmmlab-computer-vision-libraries">
  ## Utilisez `WandbVisBackend` avec les bibliothèques OpenMMLab de vision par ordinateur
</div>

`WandbVisBackend` s’utilise aussi facilement pour suivre les expériences avec des bibliothèques OpenMMLab de vision par ordinateur, comme [MMDetection](https://mmdetection.readthedocs.io/).

```python theme={null}
# hériter des configurations de base des configurations d'exécution par défaut
_base_ = ["../_base_/default_runtime.py"]

# Assigner le dict de configuration `WandbVisBackend` aux
# `vis_backends` du `visualizer` depuis les configurations de base
_base_.visualizer.vis_backends = [
    dict(
        type='WandbVisBackend',
        init_kwargs={
            'project': 'mmdet',
            'entity': 'geekyrakshit'
        },
    ),
]
```
