未知的底部blob'数据' (图层' conv1',底部索引0)

时间:2016-10-06 05:19:10

标签: machine-learning neural-network deep-learning caffe

尝试在我自己的数据集上训练LeNet。我从我的长1D vectordata集生成了HDF5文件并创建了HDF5数据层,如下所示:我将顶部blob命名为与生成HDF5时相同。

insert_split.cpp

但是当我尝试训练时,insert_splits.cpp:29] Unknown bottom blob 'data' (layer 'conv1', bottom index 0) *** Check failure stack trace: *** @ 0x7f19d7e735cd google::LogMessage::Fail() @ 0x7f19d7e75433 google::LogMessage::SendToLog() @ 0x7f19d7e7315b google::LogMessage::Flush() @ 0x7f19d7e75e1e google::LogMessageFatal::~LogMessageFatal() @ 0x7f19d82684dc caffe::InsertSplits() @ 0x7f19d8230d5e caffe::Net<>::Init() @ 0x7f19d8233f21 caffe::Net<>::Net() @ 0x7f19d829c68a caffe::Solver<>::InitTrainNet() @ 0x7f19d829d9f7 caffe::Solver<>::Init() @ 0x7f19d829dd9a caffe::Solver<>::Solver() @ 0x7f19d8211683 caffe::Creator_SGDSolver<>() @ 0x40a6c9 train() @ 0x4071c0 main @ 0x7f19d6dc8830 __libc_start_main @ 0x4079e9 _start @ (nil) (unknown) Aborted (core dumped) 发出了以下错误。

def f(lst=False):
    return True if lst else False

f() #False
[f(True) for _ in range(3)] # [True True True]

我做错了什么?

干杯,

1 个答案:

答案 0 :(得分:1)

您的数据层输出两个&#34; blob&#34;:"label" "Inputdata" 。您的"conv1"图层需要输入&#34; blob&#34;名为 "data" 。 Caffe不知道你的意思是"Inputdata""data"是同一个blob ...
现在,由于您已使用"Inputdata"名称保存了hdf5文件,因此无法在"HDF5Data"图层中更改此名称,您可以做的是将"data"更改为"Inputdata" &#34;底部&#34; "conv1"图层。

PS,
您的损失图层需要两个&#34;底部&#34; s:ip2label您忘了提供。