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