【问题标题】: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)数据类型类:H5T_FLOAT F0413 08:54:40.661201 17769 hdf5_data_layer.cpp:53] 检查失败:hdf_blobs_[i] ->shape(0) == num (1 vs. 1024)
【发布时间】:2016-08-04 16:53:25
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

看起来您从 matlab 而非 python 中保存了 hdf5(根据您的 previous question 判断)。
从 Matlab 中保存数据时,必须记住 Matlab 以列优先方式(fortran 样式)将多维数组存储在内存中,而 python、caffe 和许多其他应用程序需要以行优先方式(C 样式)存储多维数组.
因此,您需要先将 matlab 中的数据 permute 保存到 hdf5 以供 caffe 使用。详情请见this answer

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

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

【讨论】:

  • 你是对的!我使用 permute 将数据集保存在 matlab 中。我想我误解了你之前告诉我的内容,所以我得到了错误。非常感谢!
  • 现在我可以毫无错误地训练我的数据了!再次感谢!
  • @Shai 你好,你能给我一些关于我的新问题的建议吗?
猜你喜欢
  • 2016-03-28
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
  • 2018-10-05
相关资源
最近更新 更多