mobilenetv3-segmentation

May 30, 2019 · View on GitHub

python-image pytorch-image lic-image

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
BackboneFEpochsOHEMmIoUParams(M)Madds(G)CPU(fps)GPU(fps)
MV3-Small128800.4111.022.981.1276.61
MV3-Small128800.476----
MV3-Large128800.4632.688.400.6163.16
MV3-Large128800.529----
MV3-Large1281600.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

References