2024-06-03 06:32:29 +00:00
---
title: MMEngine
---
:::tip
If you are not already using ClearML, see [Getting Started ](../getting_started/ds/ds_first_steps.md ) for setup
instructions.
:::
[MMEngine ](https://github.com/open-mmlab/mmengine ) is a library for training deep learning models based on PyTorch.
2025-02-06 15:31:11 +00:00
MMEngine supports ClearML through a builtin logger: It automatically logs task environment information, such as
2024-06-03 06:32:29 +00:00
required packages and uncommitted changes, and supports reporting scalars, parameters, and debug samples.
Integrate ClearML with the following steps:
1. Instantiate a [`ClearMLVisBackend` ](https://mmengine.readthedocs.io/en/latest/api/generated/mmengine.visualization.ClearMLVisBackend.html#mmengine.visualization.ClearMLVisBackend )
2025-02-06 15:31:11 +00:00
object. This creates a ClearML Task that logs the task’ s environment information.
2024-06-03 06:32:29 +00:00
```python
from mmengine.visualization import ClearMLVisBackend
vis_backend = ClearMLVisBackend(
artifact_suffix=('.py', 'pth'),
init_kwargs=dict(
project_name='examples',
task_name='OpenMMLab cifar10',
output_uri=True
)
)
```
You can specify the following parameters:
* `init_kwargs` – A dictionary that contains the arguments to pass to ClearML's [`Task.init()` ](../references/sdk/task.md#taskinit ).
* `artifact_suffix` – At the end of training, artifacts with these suffixes will be uploaded to the task's `output_uri` .
Defaults to (`.py`, `pth` ).
2025-02-06 15:31:11 +00:00
2. Log task parameters using `ClearMLVisBackend.add_config()` . Under the `config` parameter, input a dictionary of parameter key-value pairs.
2024-06-03 06:32:29 +00:00
```python
cfg = Config(dict(a=1, b=dict(b1=[0, 1])))
vis_backend.add_config(config=cfg)
```
2025-02-06 15:31:11 +00:00
The parameters will be displayed in the ClearML WebApp, under the task’ s Hyperparameters
2024-06-03 06:32:29 +00:00
2025-02-06 15:31:11 +00:00
3. Log your task’ s scalars using either `ClearMLVisBackend.add_scalar()` for single values or `ClearMLVisBackend.add_scalars()`
2024-06-03 06:32:29 +00:00
for multiple values:
```python
vis_backend.add_scalar(name='mAP', value=0.6, step=1)
vis_backend.add_scalars(scalar_dict={'loss': 0.1,'acc':0.8}, step=1)
```
2025-02-06 15:31:11 +00:00
The scalars are displayed in the task's **Scalars** tab.
2024-06-03 06:32:29 +00:00
2025-02-06 15:31:11 +00:00
5. Report images to your task using `ClearMLVisBackend.add_image()` . Under the `image` parameter, input the image
2024-06-03 06:32:29 +00:00
to be reported as an `np.ndarray` in RGB format:
```python
img = np.random.randint(0, 256, size=(10, 10, 3))
vis_backend.add_image(name='img.png', image=img, step=1)
```
2025-02-06 15:31:11 +00:00
The images will be displayed in the task's **Debug Samples** tab.
2024-06-03 06:32:29 +00:00
5. Once you've finished training, make sure to run `ClearMLVisBackend.close()` so that ClearML can mark the task as
completed. This will also scan the directory for relevant artifacts with the suffixes input when instantiating
2025-02-06 15:31:11 +00:00
`ClearMLVisBackend` and log the artifacts to your task.
2024-06-03 06:32:29 +00:00
```python
vis_backend.close()
```