我正在和CNN做迁移学习。我想用我的数据训练网络,但我在进行前向传递时遇到了这个错误:
Error using CHECK (line 4)
input data cell length must match input blob number
Error in caffe.Net/forward (line 92)
CHECK(length(input_data) == length(self.inputs), ...
Error in main (line 79)
results= Unet.forward({data});慢慢来,一步一步地解决错误,目前我的网络中只有一个数据层。这是我的train.prototxt文件:
name: 'my_phseg_v5-train'
force_backward: true
layer {top: 'image' top:'anno' name: 'loaddata' type: 'HDF5Data' hdf5_data_param { source: '/home/alexandra/Documents/my-u-net/my_data.txt' batch_size: 1} include: { phase: TRAIN }}在matlab中:
model = '/home/alexandra/Documents/my-u-net/my_phseg_v5-train.prototxt';
weights = '/home/alexandra/Documents/my-u-net/my_phseg_v5.caffemodel';
%defining the net:
Unet = caffe.Net(model, weights, 'train'); % create net and load weights
results= Unet.forward({'image'});我真的不明白我必须把什么作为一个参数放在forward(参数)中。有人能在这一点上帮我吗?
我还注意到,在我的Unet中,输入单元格的尺寸是0x1……我想这也是它不起作用的一个原因。
有没有人有办法解决这个问题?
发布于 2016-07-25 20:17:33
我找到了我的问题的解决方案:
对于维度为0x1的输入单元格:
我使用的是deploy.prototxt文件,而不是开始时使用的train.prototxt文件。在这个文件中,定义了输入的维度。
我将其用作函数forward的参数:
output = Unet.blobs('image').get_data();
results= Unet.forward({output});必须将数据(在我的例子中是图像)本身作为输入。
https://stackoverflow.com/questions/38564091
复制相似问题