今日份的DL碰壁记录

【4.22】把一个在caffe上的project转移到pytorch

第一次转模型,想着把训练好的caffemodel参数全转成pytorch的pth,最后终于搞定了

1)caffe的Batchnorm层的参数和pytorch的不一样,caffe有三个参数,前两个除以第三个对应pytorch的running_mean和running_var(均值和协方差);Batchnorm的训练和测试使用的mean和var是不同的,一个是每个batch的,一个是global(全部训练数据)的,pytorch在test的时候要用net.eval(),用了这么久pytorch还不知道这个我怀疑学的是假的

2)skimage的图片读取和颜色空间转换跟cv2出来的数据还是有些小差别的,还有cv2读取的图片出来是BGR格式的,要转换再用

3)net.conv.register_forward_hook(hook)这样能勾出运行时候某一层的数据查看

4)caffe的反卷积层Deconvolution层和pytorch的ConvTranspose2d层是对应的,另外还有//TODO:relu的inplace的作用还没去百度,还有

decode = (repeat - 1) * [nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1), nn.ReLU(inplace=True)]

这么写不知道为什么和一层一层叠加起来的数据不一样,用hook勾出来发现每次那一层都运行了repeat-1遍,出来好几个数据

总之最后还是成功地把整个网络和效果在pytorch上复现出来,输出的结果和在caffe上的输出完全一毛一样


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值