我的数据集是一个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: ***
答案 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]