今天用pytorch训练了一份resnet18的模型,用于工作服检测。
但是把模型转为tensorrt engine部署后,发现运行起来预测结果完全错误。
1.一开始以为是过拟合,但是用训练数据预测,发现还是不对。
2.这时开始怀疑是自己模型结构哪里写错了,但是编译已经通过了,也就是自己写的tensorrt模型,完美接收了来自pytorch的resnet18的参数。
发现自己写的tensorrt版本的resnet结构,输入数据是224*224,pytorch版是128*64。
3.也就是说,这里虽然输入维度不一样,但是参数维度是完全一致的。
此时开始思考为什么会这样,因为虽然卷积层肯定能一样,但是不应该全链接层也一样啊。
这时才想起来,resnet最后有一个全局平均池化层,使得全链接层维度一致。
果然,改了输入维度和全局池化层大小之后就好了。