例外:输入Blob参数与网络输入不匹配

时间:2018-08-03 05:30:14

标签: deep-learning caffe pycaffe

此问题曾被询问过,但背景有所不同。所以请不要将其标记为重复。
我想一步步前馈网络。首先前馈到某一层,然后更改其结果,然后将其传递到下一层。这是代码。

forward_kwargs = {'data': blobs['data'].astype(np.float32, copy=False)}
blobs_out = net.forward(end='proposal',**forward_kwargs)
forward_kwargs = {'proposal': blobs_out}
blobs_out = net.forward(start='roi_pool_conv5',**forward_kwargs)

运行此代码时,会提示错误

  

例外:输入Blob参数与网络输入不匹配。

此错误来自文件pycaffe.py。该文件中给出错误的行是

 if set(kwargs.keys()) != set(self.inputs):
            raise Exception('Input blob arguments do not match net inputs.')

因为在prototxt文件中,我只提到了两个输入dataim_info。但是我想从roi_pool_conv5层再次输入我的网络,当我将此参数作为起始层发送到网络时,它会检查该blob是否在输入中。显然,它不在输入中。我无法在输入中提及这一点,因为我不确定尺寸。有任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您不知道proposal的尺寸。
如果是这样,则只需在prototxt文件中填充虚拟尺寸,然后在转发之前对其进行重塑。
运行程序后,批大小将固定不变,对吧?
然后,您可以重塑roi_pool_conv5图层和网络!
我希望这个答案对您有所帮助:)