caffe,Inception v2 Check failed: top_shape[j] == bottom[i]->shape(j)

使用Caffe 跑 Google 的Inception V2 对输入图片的shape有要求,某些shape输进去可能会报错。 
Inception model中有从conv和pooling层concat的操作,而conv和pooling的output输出计算方式不完全一样。解决方案: 
1. 按照原来prototxt输出图片 
2. 把concat层前面stride为2的conv层替换stride为1,再额外加上一个stride为2的pooling层 
e.g. 以 Inception v2 为例子InceptionBN 
conv_3c_3x3, conv_3c_double_3x3_1 
conv_4e_3x3, conv_4e_double_3x3_1 
然后再接上 stride 为2 的max pooling 层,这样几个分支出来的shape都会保持一致。

layer {
  name: "conv_3c_3x3" type: "Convolution" bottom: "conv_3c_3x3_reduce" top: "conv_3c_3x3" convolution_param { num_output: 240 kernel_size: 3 stride: 1 pad: 1 } } layer { name: "max_pool_3c_3x3" type: "Pooling" bottom: "conv_3c_3x3" top: "conv_3c_3x3" pooling_param { pool: MAX kernel_size: 3 stride: 2 pad: 0 } }

这是取巧的做法,虽然保持了加载模型参数一致,但是增加了conv操作(stride变小)和多了一层pooling操作,会增加计算量和消耗显存。

转载于:https://www.cnblogs.com/guohaoyu110/p/7497341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值