出现这种问题,有几种可能
- 模型参数加载出错
- 卷积核实现问题
- 喂入数据格式不对
- 网络结构不对
先排除3.方法很简单,就是输出形状对比。
然后想办法排除1,2,4。喂入网络(pytorch和trt)一个白色图像。然后每个Sequential最后一层的输出值。把这些值保存下来。然后做差或者做mse。查看相似度是多少,比较高,那么说明没问题,若差异比较到,就要分析看看这个Sequential是什么问题。【由于c++数据精度问题,即使你把python代码设置成双精或者单精度依然有这个问题。】
下面是python的pytorch。当然,x要写入到txt中,方便后面使用。
def forward(self, x):
out = OrderedDict()
# 将所需的值以k,v的形式保存到out中
for name, module in self.named_children():
print("name: ",name,"module: ",module)
x = module(x)
print("x:",x.shape)
return out
现在用yolov5遇到一个问题,画的框太多了,解决方法很简单,候选设置少点NMS,比如说python是1000,这里改成200