|
|
4 年之前 | |
|---|---|---|
| .. | ||
| README.md | 4 年之前 | |
| params_analysis.py | 4 年之前 | |
| sensitivities.png | 4 年之前 | |
| slim_visualize.py | 4 年之前 | |
| yolov3_prune_train.py | 4 年之前 | |
| yolov3_train.py | 4 年之前 | |
python yolov3_train.py
在此步骤中,训练的模型会保存在output/yolov3_mobilenetv1目录下
python param_analysis.py
参数分析完后,会得到yolov3.sensi.data文件,此文件保存了各参数的敏感度信息。
我们可以继续加载模型和敏感度文件,进行可视化,如下命令所示
> python slim_visualize.py > ``` > 可视化结果出下图 纵轴为`eval_metric_loss`(接下来第三步需要配置的参数),横轴为模型被裁剪的比例,从图中可以看到, - 当`eval_metric_loss`设0.05时,模型被裁掉63.1%(剩余36.9%) - 当`eval_metric_loss`设0.1时,模型被裁掉68.6%(剩余31.4%)  ## 第三步 模型进行裁剪训练python yolov3_prune_train.py ``
此步骤的代码与第一步的代码基本一致,唯一的区别是在最后的train函数中,yolov3_prune_train.py修改了里面的pretrain_weights、save_dir、sensitivities_file和eval_metric_loss`四个参数
在本示例数据上,裁剪效果对比如下,其中预测采用CPU,关闭MKLDNN进行预测,预测时间不包含数据的预处理和结果的后处理。
可以看到在模型被裁剪掉63%后,模型精度还有上升,单张图片的预测用时减少了30%。
| 模型 | 参数文件大小 | 预测速度 | MAP |
|---|---|---|---|
| YOLOv3-MobileNetV1 | 93M | 1.045s | 0.635 |
| YOLOv3-MobileNetV1(裁掉63%) | 35M | 0.735s | 0.735 |