pytorch转caffe的结果不一样时经验总结

最近跟转模型结果不一样斗争了很久很久.争对尝试,总结几个我们可以去查问题的方向吧.

1.模型是否正确

转后的模型每一层网络结构是否一样,输入与输出的特征图维度是不是一样.

pytorch
print(model)

python caffe
for layer_name, blob in net.blobs.items():
    print(layer_name + '\t' + str(blob.data.shape))

2.同样的输入,预处理与后处理相同,不同模型(pytorch,caffe)验证结果

(1)这种情况下我们保证所有的输入/预处理/后处理一致,确定是不是模型转换中出现的问题.

(2)怎么验证:每一种处理直到输入到模型,都做可视化输出,一一核对输出是否一致,不一致就改一致.

opencv imread/resize
PIL open/resize

3.查pytorch转caffe的一些坑,找思路

(1)这个地方就是网络层内部实现差异对比了,即使是一个向上取整/向下取整等的不一致;

(2)即使是没有参数的,我们都需要去比对.

maxpool
ceil_mode参数设置

前人已经做过很多这方面的了,没思路时在网上查查,或者沉下心来,看代码,一步一步对比是否一致.

 

你可能感兴趣的:(#,Pytorch,#,Caffe,深度学习框架,pytorch,caffe)