MobileNetV1: Efficient Convolutional Neural Networks for Mobile Vision Applications
Compared with the traditional convolutional neural network, MobileNetV1's parameters and the amount of computation are
greatly reduced on the premise that the accuracy rate is slightly reduced.
(Compared to VGG16, the accuracy rate is reduced by 0.9%, but the model parameters are only 1/32 of VGG). The model is
based on a streamlined architecture that uses depthwise separable convolutions to build lightweight deep neural
networks.
At the same time, two simple global hyperparameters are introduced, which can effectively trade off latency and
accuracy.
Pynative | Pynative | Graph | Graph | ||||||
---|---|---|---|---|---|---|---|---|---|
Model | Top-1 (%) | Top-5 (%) | train (s/epoch) | Infer (ms) | train(s/epoch) | Infer (ms) | Download | Config | |
GPU | MobileNet_v1_100 | 71.95 | 90.41 | model | config | ||||
Ascend | MobileNet_v1_100 | 71.83 | 90.26 | ||||||
GPU | MobileNet_v1_075 | 70.84 | 89.63 | model | config | ||||
Ascend | MobileNet_v1_075 | 70.66 | 89.49 | ||||||
GPU | MobileNet_v1_050 | 66.37 | 86.71 | model | config | ||||
Ascend | MobileNet_v1_050 | 66.39 | 86.85 | ||||||
GPU | MobileNet_v1_025 | 54.58 | 78.27 | model | config | ||||
Ascend | MobileNet_v1_025 | 54.64 | 78.29 |
The yaml config files that yield competitive results on ImageNet for different models are listed in
the configs
folder. To trigger training using preset yaml config.
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
mpirun --allow-run-as-root -n 8 python train.py -c configs/mobilenetv1/mobilenetv1_075_gpu.yaml
Here is the example for finetuning a pretrained MobileNetV1 on CIFAR10 dataset using Adam optimizer.
python train.py --model=mobilenet_v1_075_224 --pretrained --opt=adam --lr=0.001 dataset=cifar10 --num_classes=10 --dataset_download
Detailed adjustable parameters and their default value can be seen in config.py
To validate the model, you can use validate.py
. Here is an example to verify the accuracy of pretrained weights.
python validate.py --model=mobilenet_v1_075_224 --dataset=imagenet --val_split=val --pretrained
To validate the model, you can use validate.py
. Here is an example to verify the accuracy of your training.
python validate.py --model=mobilenet_v1_075_224 --dataset=imagenet --val_split=val --ckpt_path='./ckpt/mobilenet_v1_075_224-best.ckpt'
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》