mindspore2022/example/mobilenetv2_quant
wandongdong f03e88c26f update run_train.sh 2020-06-24 16:31:43 +08:00
..
scripts update run_train.sh 2020-06-24 16:31:43 +08:00
src add mindrecord 2020-06-24 13:46:43 +08:00
Readme.md add perchannel quant train 2020-06-22 18:20:53 +08:00
eval.py add mindrecord 2020-06-24 13:46:43 +08:00
train.py add mindrecord 2020-06-24 13:46:43 +08:00

Readme.md

MobileNetV2 Description

MobileNetV2 is a significant improvement over MobileNetV1 and pushes the state of the art for mobile visual recognition including classification, object detection and semantic segmentation.

MobileNetV2 builds upon the ideas from MobileNetV1, using depthwise separable convolution as efficient building blocks. However, V2 introduces two new features to the architecture: 1) linear bottlenecks between the layers, and 2) shortcut connections between the bottlenecks1.

Paper Sandler, Mark, et al. "Mobilenetv2: Inverted residuals and linear bottlenecks." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

Dataset

Dataset used: imagenet

  • Dataset size: ~125G
    • Train: 120G, 1281167 images: 1000 directories
    • Test: 5G, 50000 images: images should be classified into 1000 directories firstly, just like train images
  • Data format: RGB images.
    • Note: Data will be processed in src/dataset.py

Environment Requirements

Script description

Script and sample code

├── mobilenetv2_quant        
  ├── Readme.md                      
  ├── scripts 
     ├──run_train.sh                  
     ├──run_eval.sh                    
  ├── src                              
     ├──config.py                     
     ├──dataset.py
     ├──luanch.py       
     ├──lr_generator.py                                 
     ├──mobilenetV2_quant.py
  ├── train.py
  ├── eval.py

Training process

Usage

  • Ascend: sh run_train.sh Ascend [DEVICE_NUM] [SERVER_IP(x.x.x.x)] [VISIABLE_DEVICES(0,1,2,3,4,5,6,7)] [DATASET_PATH] [CKPT_PATH]

Launch

# training example
  Ascend: sh run_train.sh Ascend 4 192.168.0.1 0,1,2,3 ~/imagenet/train/ ~/mobilenet.ckpt

Result

Training result will be stored in the example path. Checkpoints will be stored at . /checkpoint by default, and training log will be redirected to ./train/train.log like followings.

epoch: [  0/200], step:[  624/  625], loss:[5.258/5.258], time:[140412.236], lr:[0.100]
epoch time: 140522.500, per step time: 224.836, avg loss: 5.258
epoch: [  1/200], step:[  624/  625], loss:[3.917/3.917], time:[138221.250], lr:[0.200]
epoch time: 138331.250, per step time: 221.330, avg loss: 3.917

Eval process

Usage

  • Ascend: sh run_infer.sh Ascend [DATASET_PATH] [CHECKPOINT_PATH]

Launch

# infer example
    Ascend: sh run_infer.sh Ascend ~/imagenet/val/ ~/train/mobilenet-200_625.ckpt

checkpoint can be produced in training process.

Result

Inference result will be stored in the example path, you can find result like the followings in val.log.

result: {'acc': 0.71976314102564111} ckpt=/path/to/checkpoint/mobilenet-200_625.ckpt

ModelZoo Homepage

Link