- Pytorch 1.0.1.post2
- Python 3.6+
- DALI
Step1: Go into your project path
cd /userhome/project/pytorch_image_classification; Step2: Move data to memory
./script/data_to_memory.sh cifar10
./script/data_to_memory.sh imagenetStep3: Start training
# Training with cifar10 DALI on different neural networks
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method manual --model_name MobileNetV2 --data_loader_type dali
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method manual --model_name MobileNetV3Large --data_loader_type dali
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method manual --model_name Resnet18 --data_loader_type dali
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name proxyless_gpu --data_loader_type dali 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name proxyless_cpu --data_loader_type dali 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name proxyless_mobile --data_loader_type dali 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name proxyless_mobile_14 --data_loader_type dali 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name ofa_595 --data_loader_type dali 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name ofa_482 --data_loader_type dali
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --model_method proxyless_NAS --model_name ofa_398 --data_loader_type dali
# init channel 44 epoch 1800 dropout 0.7 will have a higher performance
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 36 --layers 20 --epochs 600 --model_method darts_NAS --model_name MDENAS
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 36 --layers 20 --epochs 600 --model_method darts_NAS --model_name DDPNAS_V1
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 36 --layers 20 --epochs 600 --model_method darts_NAS --model_name DDPNAS_V2
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 36 --layers 20 --epochs 600 --model_method darts_NAS --model_name DARTS_V1
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 36 --layers 20 --epochs 600 --model_method darts_NAS --model_name DARTS_V2
# Training with cifar10 Torch on different neural networks for high performance 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method manual --model_name MobileNetV2 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method manual --model_name MobileNetV3Large 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method manual --model_name Resnet18 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name proxyless_gpu 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name proxyless_cpu 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name proxyless_mobile 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name proxyless_mobile_14 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name ofa_595 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name ofa_482 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --model_method proxyless_NAS --model_name ofa_398 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name MDENAS
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DDPNAS_V1
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DDPNAS_V2
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DARTS_V1
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 600 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DARTS_V2
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 1800 --init_channels 44 --batch_size 96 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name MDENAS
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 1800 --init_channels 44 --batch_size 96 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DDPNAS_V1 
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 1800 --init_channels 44 --batch_size 96 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DDPNAS_V2
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 1800 --init_channels 44 --batch_size 96 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DARTS_V1
python train.py --dataset cifar10 --data_path /userhome/temp_data/cifar10 --data_loader_type torch --auto_augmentation --cutout_length 16 --epochs 1800 --init_channels 44 --batch_size 96 --drop_path_prob 0.2 --aux_weight 0.4 --model_method darts_NAS --model_name DARTS_V2
# Training with ImageNet torch on different neural networks
python train.py --dataset imagenet --data_path /userhome/temp_data/ImageNet --data_loader_type dali --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 48 --layers 14 --epochs 300 --model_method darts_NAS --model_name MDENAS
python train.py --dataset imagenet --data_path /userhome/temp_data/ImageNet --data_loader_type dali --model_method proxyless_NAS --model_name proxyless_gpu 
python train.py --dataset imagenet --data_path /userhome/temp_data/ImageNet --data_loader_type torch --epochs 300 --auto_augmentation --drop_path_prob 0.2 --aux_weight 0.4 --init_channels 48 --layers 14 --model_method darts_NAS --model_name MDENAS
python train.py --dataset imagenet --data_path /userhome/temp_data/ImageNet --data_loader_type torch --epochs 300 --auto_augmentation  --model_method proxyless_NAS --model_name proxyless_gpu Train with Timm and apex
python timm_train.py --data /userhome/temp_data/ImageNet -b 256 --model_method mual --model_name MobileNetV3Large --sched step --epochs 450 --decay-epochs 2.4 --decay-rate .97 --opt rmsproptf --opt-eps .001 -j 8 --warmup-lr 1e-6 --weight-decay 1e-5 --drop 0.2 --drop-connect 0.2 --model-ema --model-ema-decay 0.9999 --aa rand-m9-mstd0.5 --remode pixel --reprob 0.2 --amp --lr .016| Model | Epoch | Dropout | LabelSmooth | FLOPs | Result | 
|---|---|---|---|---|---|
| MobileNetV2 | 150 | 0.0 | 0.1 | 300.774 | 71.67 | 
| MobileNetV3 | 150 | 0.0 | 0.1 | 216.590 | 72.93 | 
| proxyless_mobile_14 | 150 | 0.0 | 0.1 | 580.883 | 75.28 | 
| proxyless_mobile | 150 | 0.0 | 0.1 | 320.428 | 73.41 | 
| proxyless_gpu | 150 | 0.0 | 0.1 | 465.260 | 73.93 | 
| proxyless_cpu | 150 | 0.0 | 0.1 | 439.244 | 74.15 | 
| ofa_595 | 150 | 0.0 | 0.1 | 512.862 | 75.59 | 
| ofa_482 | 150 | 0.0 | 0.1 | 482.413 | 75.36 | 
| ofa_398 | 150 | 0.0 | 0.1 | 389.488 | 74.61 | 
| my_600_cifar10 | 150 | 0.0 | 0.1 | 570.014 | 75.26 | 
| my_500_cifar10 | 150 | 0.0 | 0.1 | 494.585 | 74.99 | 
| my_400_cifar10 | 150 | 0.0 | 0.1 | 395.348 | 73.36 | 
| MobileNetV2 | 300 | 0.2 | 0.1 | 300.774 | 72.53 | 
| MobileNetV3 | 300 | 0.2 | 0.1 | 216.590 | 73.94 | 
| proxyless_mobile_14 | 300 | 0.2 | 0.1 | 580.883 | 76.47 | 
| proxyless_mobile | 300 | 0.2 | 0.1 | 320.428 | 74.36 | 
| proxyless_gpu | 300 | 0.2 | 0.1 | 465.260 | 75.42 | 
| proxyless_cpu | 300 | 0.2 | 0.1 | 439.244 | 75.00 | 
| ofa_595 | 300 | 0.2 | 0.1 | 512.862 | 76.87 | 
| ofa_482 | 300 | 0.2 | 0.1 | 482.413 | 76.63 | 
| ofa_398 | 300 | 0.2 | 0.1 | 389.488 | 75.90 | 
| my_600_cifar10 | 300 | 0.0 | 0.1 | 570.014 | 75.97 | 
| proxyless_mobile_14 | 300 | 0.0 | 0.1 | 580.883 | 75.27 | 
| proxyless_gpu | 300 | 0.0 | 0.1 | 465.260 | 74.16 | 
| ofa_482 | 300 | 0.0 | 0.1 | 482.413 | 75.80 | 
| Model | Epoch | Dropout | LabelSmooth | FLOPs | Result | 
|---|---|---|---|---|---|
| MobileNetV2 | 450 | 0.2 | 0.1 | 300.774 | 73.41 | 
| MobileNetV2 | 250 | 0.2 | 0.1 | 300.774 | 72.41 | 
| MobileNetV3 | 450 | 0.2 | 0.1 | 216.590 | 75.492 | 
| MobileNetV3 | 250 | 0.2 | 0.1 | 216.590 | 75.41 | 
| MobileNetV3 | 200 | 0.2 | 0.1 | 216.590 | 75.052 | 
| MobileNetV3 | 150 | 0.2 | 0.1 | 216.590 | 74.426 | 
| Model | Epoch | Dropout | LabelSmooth | FLOPs | Result | 
|---|---|---|---|---|---|
| MobileNetV2 | 300 | 0.0 | 0.1 | 6.125 | 82.73 | 
| MobileNetV3Large | 300 | 0.0 | 0.1 | 7.087 | 83.00 | 
| Resnet18 | 300 | 0.0 | 0.1 | 555.42 | 93.59 | 
| my_400 | 300 | 0.0 | 0.1 | 10.641 | 86.30 | 
| my_500 | 300 | 0.0 | 0.1 | 13.323 | 86.35 | 
| my_600 | 300 | 0.0 | 0.1 | 15.236 | 85.82 | 
| ofa_398 | 300 | 0.0 | 0.1 | 12.115 | 84.02 | 
| ofa_482 | 300 | 0.0 | 0.1 | 14.386 | 85.37 | 
| ofa_595 | 300 | 0.0 | 0.1 | 15.029 | 85.72 | 
| proxyless_cpu | 300 | 0.0 | 0.1 | 8.949 | 82.85 | 
| proxyless_gpu | 300 | 0.0 | 0.1 | 9.477 | 80.99 | 
| proxyless_mobile | 300 | 0.0 | 0.1 | 6.526 | 81.28 | 
| proxyless_mobile_14 | 300 | 0.0 | 0.1 | 11.836 | 82.91 | 
| Model | Epoch | Dropout | LabelSmooth | FLOPs | Result | 
|---|---|---|---|---|---|
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:100 | 300 | 0.0 | 0.1 | 4.162 | 79.74 | 
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:200 | 300 | 0.0 | 0.1 | 7.889 | 80.94 | 
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:300 | 300 | 0.0 | 0.1 | 9.920 | 84.08 | 
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:400 | 300 | 0.0 | 0.1 | 12.271 | 85.55 | 
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:500 | 300 | 0.0 | 0.1 | 14.274 | 85.37 | 
| ofa__dataset_cifar10_width_multi_1.2_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:600 | 300 | 0.0 | 0.1 | 14.984 | 85.67 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:100 | 300 | 0.0 | 0.1 | 1.965 | 79.62 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:200 | 300 | 0.0 | 0.1 | 4.083 | 83.75 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:300 | 300 | 0.0 | 0.1 | 6.124 | 82.54 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:400 | 300 | 0.0 | 0.1 | 8.127 | 84.87 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:500 | 300 | 0.0 | 0.1 | 10.148 | 84.70 | 
| proxyless__dataset_cifar10_width_multi_1.3_epochs_200_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:600 | 300 | 0.0 | 0.1 | 12.123 | 85.51 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:600 | 300 | 0.0 | 0.1 | 13.719 | 85.55 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 16.544 | 86.37 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.1_pruning_step_6:600 | 300 | 0.0 | 0.1 | 12.259 | 86.11 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.1_pruning_step_9:600 | 300 | 0.0 | 0.1 | 15.372 | 86.76 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_10_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 12.846 | 85.76 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_10_lr_0.1_pruning_step_3_1:600 | 300 | 0.0 | 0.1 | 15.458 | 86.11 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_10_lr_0.1_pruning_step_3_2:600 | 300 | 0.0 | 0.1 | 15.444 | 86.48 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_10_warm_up_epochs_10_lr_0.1_pruning_step_3_3:600 | 300 | 0.0 | 0.1 | 15.878 | 86.28 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_2_warm_up_epochs_0_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 13.883 | 86.25 | 
| ofa_cifar10_width_multi_1.2_epochs_1000_data_split_5_warm_up_epochs_0_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 16.372 | 86.22 | 
| ofa_cifar10_width_multi_1.3_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 17.203 | 86.37 | 
| ofa_cifar10_width_multi_1.4_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.1_pruning_step_3:600 | 300 | 0.0 | 0.1 | 16.431 | 86.48 | 
| EfficientNet_b0 | 300 | 0.0 | 0.1 | 8.475 | 80.93 | 
| FBNet-C | 300 | 0.0 | 0.1 | 7.836 | 79.3 | 
| proxyless__dataset_imagenet_width_multi_1.3_epochs_1000_data_split_10_warm_up_epochs_0_lr_0.01_pruning_step_3:600 | 300 | 0.0 | 0.1 | 12.129 | 84.48 | 
Download the model at here and the password is ur0t
Test the model on ImageNet by
 python test.py --structure_path models/model_zoo/MIGONAS_400.json --pretrained path_to_the_model_fileDownload the model at here and the password is v8rh
Test the model on ImageNet by
 python test.py --structure_path models/model_zoo/MIGONAS_600.json --pretrained path_to_the_model_file