MMEngine
2 minute read
MMEngine by OpenMMLab is a foundational library for training deep learning models based on PyTorch. MMEngine implements a next-generation training architecture for the OpenMMLab algorithm library, providing a unified execution foundation for over 30 algorithm libraries within OpenMMLab. Its core components include the training engine, evaluation engine, and module management.
W&B is directly integrated into MMEngine through a dedicated WandbVisBackend
that can be used to
- log training and evaluation metrics.
- log and manage experiment configs.
- log additional records such as graph, images, scalars, etc.
Get started
Install openmim
and wandb
.
pip install -q -U openmim wandb
!pip install -q -U openmim wandb
Next, install mmengine
and mmcv
using mim
.
mim install -q mmengine mmcv
!mim install -q mmengine mmcv
Use the WandbVisBackend
with MMEngine Runner
This section demonstrates a typical workflow using WandbVisBackend
using mmengine.runner.Runner
.
-
Define a
visualizer
from a visualization config.from mmengine.visualization import Visualizer # define the visualization configs visualization_cfg = dict( name="wandb_visualizer", vis_backends=[ dict( type='WandbVisBackend', init_kwargs=dict(project="mmengine"), ) ], save_dir="runs/wandb" ) # get the visualizer from the visualization configs visualizer = Visualizer.get_instance(**visualization_cfg)
You pass a dictionary of arguments for [W&B run initialization](/ref/python/sdk/functions/init/) input parameters to `init_kwargs`.
-
Initialize a
runner
with thevisualizer
, and callrunner.train()
.from mmengine.runner import Runner # build the mmengine Runner which is a training helper for PyTorch runner = Runner( model, work_dir='runs/gan/', train_dataloader=train_dataloader, train_cfg=train_cfg, optim_wrapper=opt_wrapper_dict, visualizer=visualizer, # pass the visualizer ) # start training runner.train()
Use the
WandbVisBackend
with OpenMMLab computer vision librariesThe
WandbVisBackend
can also be used easily to track experiments with OpenMMLab computer vision libraries such as MMDetection.# inherit base configs from the default runtime configs _base_ = ["../_base_/default_runtime.py"] # Assign the `WandbVisBackend` config dictionary to the # `vis_backends` of the `visualizer` from the base configs _base_.visualizer.vis_backends = [ dict( type='WandbVisBackend', init_kwargs={ 'project': 'mmdet', 'entity': 'geekyrakshit' }, ), ]
Feedback
Was this page helpful?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.
-