Awesome
mobilenetv3-segmentation
An unofficial implement of MobileNetV3 for semantic segmentation.
Requisites
- PyTorch 1.1
- Python 3.x
Usage
Train
- Single GPU training
python train.py --model mobilenetv3_small --dataset citys --lr 0.0001 --epochs 240
- Multi-GPU training
# for example, train mobilenetv3 with 4 GPUs:
export NGPUS=4
python -m torch.distributed.launch --nproc_per_node=$NGPUS train.py --model mobilenetv3_small --dataset citys --lr 0.0001 --epochs 240
Evaluation
- Single GPU training
python eval.py --model mobilenetv3_small --dataset citys
- Multi-GPU training
# for example, evaluate mobilenetv3 with 4 GPUs:
export NGPUS=4
python -m torch.distributed.launch --nproc_per_node=$NGPUS --model mobilenetv3_small --dataset citys
Result
- Cityscapes
Backbone | F | Epochs | OHEM | mIoU | Params(M) | Madds(G) | CPU(fps) | GPU(fps) |
---|---|---|---|---|---|---|---|---|
MV3-Small | 128 | 80 | ✘ | 0.411 | 1.02 | 2.98 | 1.12 | 76.61 |
MV3-Small | 128 | 80 | ✓ | 0.476 | - | - | - | - |
MV3-Large | 128 | 80 | ✘ | 0.463 | 2.68 | 8.40 | 0.61 | 63.16 |
MV3-Large | 128 | 80 | ✓ | 0.529 | - | - | - | - |
MV3-Large | 128 | 160 | ✓ | 0.526 | - | - | - | - |
where: lr=0.01, crop_size=768
Note: Params and Madds are got using torchscope. They are much larger than those reported in the paper.
To Do
- improve performance
- train and eval
- test madds