首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matcaffe运行前向传球时出错

使用matcaffe运行前向传球时出错
EN

Stack Overflow用户
提问于 2016-07-25 17:27:04
回答 1查看 546关注 0票数 0

我正在和CNN做迁移学习。我想用我的数据训练网络,但我在进行前向传递时遇到了这个错误:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
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……我想这也是它不起作用的一个原因。

有没有人有办法解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2016-07-25 20:17:33

我找到了我的问题的解决方案:

对于维度为0x1的输入单元格:

我使用的是deploy.prototxt文件,而不是开始时使用的train.prototxt文件。在这个文件中,定义了输入的维度。

我将其用作函数forward的参数:

代码语言:javascript
复制
output = Unet.blobs('image').get_data();
results= Unet.forward({output});

必须将数据(在我的例子中是图像)本身作为输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38564091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档