kernel weights has count 32640 but 2304 was expected
其中32640/128=255
255 = (80+5)*3,即80个类,5个预测值,每个尺度用3个anchor
因此可能需要修改yololayer.h文件中把自己数据的类别、anchor等参数
当把class_num变成2时,提示变为
kernel weights has count 32640 but 2688 was expected
128*1*1*21/1=2688
在下述的文章可以看到按理说不需要进行修改,但是仍然出现了问题
Jetson nano上部署自己的Yolov5模型(TensorRT加速)onnx模型转engine文件_sinat_28371057的博客-CSDN博客
这个时候我采取了一种取巧的方法,因为制裁使用yolov5s的权重文件直接生成engine时并未出错,但是更改calss_num后出错,因此我想到是否是因为我的目标是单类别的。上文可知更改为2是仍然出错,我索性就将类别数不动仍为80,但是出了我要识别的物体外全设置为空,在这种情况下生成engine成功。
原因:不清楚,可能是因为某些东西没安装好冲突了吧,哈哈哈
解决方法:最后我彻底放弃了直接重头开始布置环境,新装了最新的YOLOv5 6.0版本的,并且重新安装了依赖库,重新跑整个权重文件之后,然后使用最新的对应YOLOv5 6.0版本的tensorrt进行转换整个engine,结果终于正常了。折腾了我几个月的问题终于解决了(绕过了 哈哈哈)。