https://github.com/bigtuo/yolov3-channel-and-layer-pruning
yolov3 yolov4 channel and layer pruning, Knowledge Distillation 层剪枝,通道剪枝,知识蒸馏
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (3.8%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
yolov3 yolov4 channel and layer pruning, Knowledge Distillation 层剪枝,通道剪枝,知识蒸馏
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of tanluren/yolov3-channel-and-layer-pruning
Created over 4 years ago
· Last pushed almost 6 years ago
https://github.com/Bigtuo/yolov3-channel-and-layer-pruning/blob/master/
# yolov3-channel-and-layer-pruning [ultralytics/yolov3](https://github.com/ultralytics/yolov3)[Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017)](http://openaccess.thecvf.com/content_iccv_2017/html/Liu_Learning_Efficient_Convolutional_ICCV_2017_paper.html)bnGmma
yolov3bn gamma[](https://github.com/zbyuan)

#### 1.**yolov3-spp**yolov3-spp.weightsyolov3
2.train.py, --img_size 608 .
3.2019/12/06
4.2019/12/08********HintonDistilling the Knowledge in a Neural Networkcfg--t_cfg --t_weightsyolo
5.2019/12/10734912150
6.2019/12/14[apex](https://github.com/NVIDIA/apex),train.pymixed_precisionFalse.
7.2019/12/23****"Learning Efficient Object Detection Models with Knowledge Distillation"targetL2targetcfg
8.2019/12/27****
9.2020/01/02testimg_sizetest
10.2020/01/04[](https://blog.csdn.net/weixin_41397123/article/details/103828931)**visdrone**12M
11.2020/04/10**yolov3-tiny**slim_prune.py
12.2020/4/24**yolov4**.
13.2020/4/30datasets.py 592.
14.2020/7/8**yolov4-tiny**.
#### requirements.txt[](https://github.com/ultralytics/yolov3/wiki/Train-Custom-Data)darknet
yolov3cfgdatayolov3.weights
`python train.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/yolov3.weights --epochs 100 --batch-size 32` #### scale0.001mAP,BNs;-sr--prune 0prune.py--prune 1 ss
ptepoch`python -c "from models import *; convert('cfg/yolov3.cfg', 'weights/last.pt')"`darknet weightsepochdarknet weightsepoch 0
`python train.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.weights --epochs 300 --batch-size 32 -sr --s 0.001 --prune 1` * ##### s sss
`bn_module.weight.grad.data.add_(s * torch.sign(bn_module.weight.data))` * ##### s epochs0.5s1000.5sbns0.5100bnsssprune_utils.pyBNOptimizer
`# s = s if epoch <= opt.epochs * 0.5 else s * 0.01` * ##### s epochs0.585%15%s10085%baselinestrain.py0.850.5100
`#if opt.sr and opt.prune==1 and epoch > opt.epochs * 0.5:`
`# idx2mask = get_mask2(model, prune_idx, 0.85)` #### [Lam1360/YOLOv3-model-pruning](https://github.com/Lam1360/YOLOv3-model-pruning)yolov323shortcutaddshortcutLam1360/YOLOv3-model-pruningshortcut
`python prune.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.pt --percent 0.85` #### [coldlarry/YOLOv3-complete-pruning](https://github.com/coldlarry/YOLOv3-complete-pruning)shortcutshortcutmaskmaskshortcutshortcut
`python shortcut_prune.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.pt --percent 0.6` #### [PengyiZhang/SlimYOLOv3](https://github.com/PengyiZhang/SlimYOLOv3)maskshortcutmaskmergemask
`python slim_prune.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.pt --global_percent 0.8 --layer_keep 0.01` #### shortcutCBLGmmayolov3shortcutshortcutshortcutyolov323shortcut8shortcut2416shortcut4869shortcut
`python layer_prune.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.pt --shortcuts 12` ####
`python layer_channel_prune.py --cfg cfg/my_cfg.cfg --data data/my_data.data --weights weights/last.pt --shortcuts 12 --global_percent 0.8 --layer_keep 0.1` #### finetune 6epochwarmup
`python train.py --cfg cfg/prune_0.85_my_cfg.cfg --data data/my_data.data --weights weights/prune_0.85_last.weights --epochs 100 --batch-size 32` #### tensorboard `tensorboard --logdir runs`

issue734912150
#### yolov3-sppoxfordhand[](http://www.robots.ox.ac.uk/~vgg/data/hands/downloads/hand_dataset.tar.gz),dataconverter.pytrain.txtvalid.txtoxfordhand.data
`python train.py --cfg cfg/yolov3-spp-hand.cfg --data data/oxfordhand.data --weights weights/yolov3-spp.weights --batch-size 20 --epochs 100`
`python -c "from models import *; convert('cfg/yolov3.cfg', 'weights/last.pt')"`
`python train.py --cfg cfg/yolov3-spp-hand.cfg --data data/oxfordhand.data --weights weights/converted.weights --batch-size 20 --epochs 300 -sr --s 0.001 --prune 1`
100epochbaselinemAP0.84;s0.001300epochprune 1shortcutepochs0.70.9Gmma0.1mAP 0.797

bntensorboardbnGmmaGmma1Gmma00

layer_channel_prune.pyslim_prunelayer_pruneGlobal perent0.93layer keep0.01shortcuts1648(32CBL16shortcut)239M5.2MmAP0.534.6M98%166tesla p100
`python layer_channel_prune.py --cfg cfg/yolov3-spp-hand.cfg --data data/oxfordhand.data --weights weights/last.pt --global_percent 0.93 --layer_keep 0.01 --shortcuts 16`

50epoch0.793bnbaseline10shortcut50epoch0.810.95542.8M5mAP050epoch0.75
`python train.py --cfg cfg/prune_16_shortcut_prune_0.93_keep_0.01_yolov3-spp-hand.cfg --data data/oxfordhand.data --weights weights/prune_16_shortcut_prune_0.93_keep_0.01_last.weights --batch-size 52 --epochs 50`

cfgyolov3cfgweights
[](https://pan.baidu.com/s/1APUfwO4L69u28Wt9gFNAYw)cfgbaseline ## License Apache 2.0
Owner
- Login: Bigtuo
- Kind: user
- Repositories: 4
- Profile: https://github.com/Bigtuo