0

我的数据集是一个 HDF5 文件,由datawith shape[129028,1,12,1024]labelof shape组成[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: ***
4

1 回答 1

2

看起来您从 matlab 中保存了 hdf5,而不是 python(根据您之前的问题判断)。
从 Matlab 中保存数据时,必须记住 Matlab 以列优先方式(fortran 样式)将多维数组存储在内存中,而 python、caffe 和许多其他应用程序需要以行优先方式(C 样式)存储多维数组.
因此,您需要permute先将 matlab 中的数据保存到 hdf5 以供 caffe 使用。有关更多详细信息,请参阅此答案

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

data   [1024, 12, 1, 129028]
label  [1, 1, 1, 129028]
于 2016-04-13T15:37:59.767 回答