重点(本质结构重参数化)
我们可以看到基于YoloV7训练的cfg有两种yaml文件,一个是training文件夹,一个是deploy文件夹,这两种文件夹有啥不一样呢???
大家可以看下下面别人的issuse,,记住这个很关键,就是你选择哪个yaml训练对你后面导出的onnx是很关键的,后面我们会说到。
training中的yaml文件最后是采用IDetect,而deploy中的yaml文件采用的是Detect
IDetect是在最后一个C5结构输出增加一个add操作,之后在进行conv,然后在mul操作,而Detect则是和v5一样的操作,没有add mul。
一句话:deploy模型中自带后处理和nms(非极大值抑制),不需要自己在编写,强烈建议使用deploy进行训练,以下教程根据deploy配置文件进行编写
否则会报错:too many values to unpack (expected 7)
,则是因为模型输出不是:float32[Concatoutput_dim_0,7]
,而是 float32[1,25200,85]
,需要自己编写后处理,也可以去yolov5代码中复制:
类似paddlepaddle框架中也有配置如下图,需要yolov5,onnx预处理和后处理代码的私信我
来源地址:https://blog.csdn.net/changzengli/article/details/129541176