ZJU-lishuang / yolov5_prune

yolov5 prune,Support V2, V3, V4 and V6 versions of yolov5
Apache License 2.0
559 stars 137 forks source link

微调后的模型如何转为ONNX? #32

Closed yao-zheng-yi closed 3 years ago

yao-zheng-yi commented 3 years ago

微调后得到的模型文件还是Darknet结构的吗?我尝试使用了yolov4转onnx和yolov5转onnx,两种方法都没有成果

ZJU-lishuang commented 3 years ago

模型是Darknet结构 我使用yolov5来转换onnx 需要修改modelori.py和export_onnx.py文件部分内容。

yolov4转onnx应该也是可以的,但也需要适配,模型输出结构我是按照yolov5来的

ZJU-lishuang commented 3 years ago

@yao-zheng-yi 尝试了一下,成功将剪枝后微调的模型转为onnx export model to onnx set True when export model to onnx

yao-zheng-yi commented 3 years ago

感谢,我前段时间也尝试转换成功了。 最近我更新了你的最新代码,发现使用新代码剪枝微调后得到的mAP和使用旧代码剪枝微调后比起来下降了三四个点。我在使用蒸馏的时候训练几个epoch就会出现nan,所以没有用到蒸馏。是因为这个原因才会导致mAP下降吗?

ZJU-lishuang commented 3 years ago

目前代码蒸馏是可选项,不干扰之前的代码。 不清楚你两个版本之前代码的差别,要比对一下才能判断是不是这个原因

yao-zheng-yi commented 3 years ago

我把新代码稀疏训练的模型用新代码进行剪枝,结果还是不好 看了一下稀疏训练的结果,有点古怪,感觉是稀疏训练的问题 这是新代码稀疏训练的结果 results 这是旧代码的 result

ZJU-lishuang commented 3 years ago

稀疏化训练和正常训练的效果应该差不多,你这里map都好低

yao-zheng-yi commented 3 years ago

正常训练的map也在35左右

PowerDi commented 3 years ago

剪枝转成onnx后 速度提升多大?

ZJU-lishuang commented 3 years ago

It depends(hardware, models, precision requirements, deployment platform, etc.), you have to find out yourself.

123wujiao commented 3 years ago

@yao-zheng-yi 尝试了一下,成功将剪枝后微调的模型转为onnx export model to onnx set True when export model to onnx

但是转换后的模型检测出来很多框,这如何解决呢?

123wujiao commented 3 years ago

请问楼主,目前我模型按照export model to onnx导出来的进行推理发现结果有很多的检测框,这种问题该如何解决呢

ZJU-lishuang commented 3 years ago

according to my experience,the problem may be caused by the version of model.There are some wrong parameters here.

123wujiao commented 3 years ago

according to my experience,the problem may be caused by the version of model.There are some wrong parameters here. 博主,我的pt模型检测效果就是有效的,准确性挺好的,就是在模型准换的时候出现多框的问题,如果是版本问题,前面是不是就准换不成功,想请教楼主有没有别的办法进行有效准换,还有一个问题请教,那个set True when export model to onnx与export model to onnx是两个单独独立的转换模型的方法吧,不是同时修改设置吧?