WARN: this method is rely on BN layer, if the model use LN or other normalization layer, this method may not work
To Run Experiment, use the following code
python main.py PATH_TO_DATASET \
--print-freq 100 -b 256 --worker 8 \
--dataset YOUR_DATASET --arch YOUR_MODEL_NAME --expname YOU_EXPERIMENT_NAME --pretrained \
--method st_margin --prune True --use_global_criterion True --scaling_norm_criterion False --prune_last True \
--epoch 120 --prune_steps [20,40,60,80,100] --prune_rate 0.5 --lr 0.01 --lr_adjust_steps [20,100] --margin_penalty 5 --wd 1e-5 \
To run costum dataset, change --dataset to you dataset name and add it into build_loader.build_data_loader
To use costum model, change --arch to you model name and add it into custom_model.py. Read the comments in custom_model.py for more details.
training result will be saved in 'output/YOU_EXPERIMENT_NAME'
--epoch total training epoch
--prune_steps prune epoch list for iterative pruning
--prune_rate 1 - final_remain_rate
--lr learning rate
--lr_adjust_steps lr decay epoch, decay rate = 0.1
--margin_penalty the loss weight
--wd weight decay
the other args are some experimental args, please do not change them