xxradon / PytorchToCaffe

Pytorch model to caffe model, supported pytorch 0.3, 0.3.1, 0.4, 0.4.1 ,1.0 , 1.0.1 , 1.2 ,1.3 .notice that only pytorch 1.1 have some bugs
MIT License
783 stars 224 forks source link

反卷积层需要修改,pytorch_to_caffe.py的121行,反卷积层才能正确转换。 #31

Open zoufangyu1987 opened 5 years ago

zoufangyu1987 commented 5 years ago

@xxradon 请您确认一下,谢谢! https://github.com/xxradon/PytorchToCaffe里的pytorch_to_caffe.py的121行: pad=_pair(padding),dilation=_pair(dilation),bias_term=bias is not None) 修改为: pad=_pair(padding),dilation=_pair(dilation),bias_term=bias is not None,groups=groups) 反卷积层转的时候少了groups参数

xxradon commented 5 years ago

谢谢,我有时间马上测试,其实你可以send PR。

zoufangyu1987 commented 5 years ago

谢谢!

DJinsis commented 5 years ago

改了貌似反卷积出来的尺寸对不上,例如1,32,64,64应该出来1,64,128,128。但是我得到的是1,64,127,127

zoufangyu1987 commented 5 years ago

我到没遇到这种问题,问问作者是不是有哪里不对?

xxradon commented 5 years ago

@DJinsis 应该是你自己调用跑forward的caffe与我代码中的caffe.proto参数不一致。caffe的版本太多了,每个layer的实现都可能完全不一样。

DJinsis commented 5 years ago

我看了下,caffe里面反卷积的操作的公式如下,如果input_size取64,stride取2,kernel_size取3,pad取1,那么计算出的feature_map就是127。 image 但是pytorch里面有一个output_padding参数,就是为了防止这样的情况, image 我也不知道对不对,在想该怎么改。。。我现在跑的时候,stride取2,就会出现下面的情况,64变127 image @xxradon