数据类型:H5T_FLOAT F0413 08:54:40.661201 17769 hdf5_data_layer.cpp:53]检查失败:hdf_blobs_ [i] - > shape(0)== num(1对1024)

时间:2016-04-13 14:09:57

标签: neural-network hdf5 deep-learning caffe matcaffe

我的数据集是一个HDF5文件,包含data,形状[129028,1,12,1024]label形状[129028,1,1,1]
但是当我运行solver.prototxt时,我收到错误消息:

I0413 08:54:34.689985 17769 hdf5.cpp:32] Datatype class: H5T_FLOAT
F0413 08:54:40.661201 17769 hdf5_data_layer.cpp:53] Check failed:   
hdf_blobs_[i] ->shape(0) == num (1 vs. 1024) 
*** Check failure stack trace: ***

1 个答案:

答案 0 :(得分:2)

看起来你从matlab保存了hdf5,而不是python(用你的previous question判断)。
当从Matlab保存数据时,必须记住Matlab以colums-first方式(fortran风格)在内存中存储多维数组,而python,caffe和许多其他应用程序期望以行优先的方式存储多维数组(C风格) 。
因此,在将其保存到hdf5 for caffe之前,您需要permute matlab中的数据。有关详细信息,请参阅this answer

我怀疑如果你在hdf5文件的shell中运行h5ls,那你存储的内容就会注意到存储数组的形状实际上是

data   [1024, 12, 1, 129028]
label  [1, 1, 1, 129028]