Visualization

MMSegmentation 1.x provides convenient ways for monitoring training status or visualizing data and model predictions.

Training status Monitor

MMSegmentation 1.x uses TensorBoard to monitor training status.

TensorBoard Configuration

Install TensorBoard following official instructions e.g.

1
2
pip install tensorboardX
pip install future tensorboard

Add TensorboardVisBackend in vis_backend of visualizer in default_runtime.py config file:

1
2
3
4
5
vis_backends = [dict(type='LocalVisBackend'),  
dict(type='TensorboardVisBackend')]
visualizer = dict(
type='SegLocalVisualizer', vis_backends=vis_backends, name='visualizer')

Modify the config file

1
2
3
4
5
6
7
8
9
10
11
12
13
...
vis_backends = [
dict(type='LocalVisBackend'),
dict(type='TensorboardVisBackend')
]
visualizer = dict(
name='visualizer',
type='SegLocalVisualizer',
vis_backends=[
dict(type='LocalVisBackend'),
dict(type='TensorboardVisBackend')
])
...

Examining scalars in TensorBoard

Launch training experiment e.g.

1
2
3
4
5
python tools/train.py configs/pspnet/pspnet_r50-d8_4xb4-80k_ade20k-512x512.py --work-dir work_dir/test_visual
```
Find the vis_data path of work_dir after starting training, for example, the vis_data path of this particular test is as follows:
```bash
work_dirs/test_visual/20220810_115248/vis_data

The scalar file in vis_data path includes learning rate, losses and data_time etc, also record metrics results and you can refer logging tutorial in MMEngine to log custom data. The tensorboard visualization results are executed with the following command:

1
tensorboard --logdir work_dirs/test_visual/20220810_115248/vis_data