本文主要针对yolo_v3进行模型剪枝量化,主要使用voc格式的数据集训练自己的数据,代码主要在:
https://github.com/ReOneK/Yolo_v3_prune_vocdata
具体步骤如下:
一、数据处理
- 将标注数据放入data/Annotations,图片数据放入data/images
- 运行modify.py文件,避免因图片问题导致标注文件中图片的长宽为
0的问题
-将voc_label.py中classes修改为自己的训练类别,并分别运行maketxt.py、voc_label.py
二、模型剪枝
1.正常训练
- 对应自己的训练数据修改data/voc.data以及voc.name
- 同时修改yolov3.cfg中yolo层对应的filters以及classes
filters=3*(classes+5)
python3 train.py --data data/voc.data --batch-size 16 --accumulate 1 --weights weights/yolov3.weights --cfg cfg/yolov3.cfg
2.稀疏化训练
- `-sr`开启稀疏化,`--s`指定稀疏因子大小,`--prune`指定稀疏类型。
其中:
--prune 0为正常剪枝和规整剪枝的稀疏化
--prune 1为极限剪枝的稀疏化
--p