caffe:检查失败:target_blobs.size()== source_layer.blobs_size()(2对1)图层conv1

时间:2017-05-06 02:58:04

标签: computer-vision deep-learning caffe convolution pycaffe

我修改FCN网并设计一个新的网络,其中我使用两个ImageData Layer作为输入参数,并希望网络产生一个图片作为输出。 这是train_val.prototxtdeploy.prototxt

原始图片和标签都是灰度图片,尺寸为224 * 224。 我已经训练了一个caffemodel并使用infer.py来使用caffemodel进行分割,但遇到错误:

 F0505 06:15:08.072602 30713 net.cpp:767] Check failed: target_blobs.size() == source_layer.blobs_size() (2 vs. 1) Incompatible number of blobs for layer conv1

这是infer.py文件:

import numpy as np
from PIL import Image
caffe_root = '/home/zhaimo/' 
import sys
sys.path.insert(0, caffe_root + 'caffe-master/python')

import caffe
im = Image.open('/home/zhaimo/fcn-master/data/vessel/test/13.png')
in_ = np.array(im, dtype=np.float32)
#in_ = in_[:,:,::-1]
#in_ -= np.array((104.00698793,116.66876762,122.67891434))
#in_ = in_.transpose((2,0,1))


net = caffe.Net('/home/zhaimo/fcn-master/mo/deploy.prototxt', '/home/zhaimo/fcn-master/mo/snapshot/train/_iter_200000.caffemodel', caffe.TEST)
net.blobs['data'].reshape(1, *in_.shape)
net.blobs['data'].data[...] = in_
net.forward()
out = net.blobs['score'].data[0].argmax(axis=0)

plt.axis('off')
plt.savefig('/home/zhaimo/fcn-master/mo/result/13.png')

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题在于conv1中的偏见词。在train.prototxt中,它设置为false。但是在deploy.prototxt中,它不是,默认情况下是真的。这就是为什么重量装载机正在寻找两个blob。