首页 文章

错误:H5LTfind_dataset(file_id,dataset_name_)无法找到HDF5数据集标签

提问于
浏览
2

我想使用HDF5文件在我的CNN中输入我的数据和标签 . 我用matlab创建了hdf5文件 .

这是我的代码:

h5create(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/train/image',[522 775 3 numFrames]);
h5create(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/train/anno',[522 775 3 numFrames]);
h5create(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/label',[1 numFrames]);`


h5write(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/train/image',images);
h5write(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/train/anno',anno);
h5write(['uNetDataSet.h5'],'/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/label',label);`

imageanno 是4D unit8label 是1x85 unit16 向量 .

当我显示我的.h5文件时,我得到了这个:

HDF5 uNetDataSet.h5
小组'/'
集团'/ home'
集团'/ home / alexandra'
集团'/ home / alexandra / Documents'
Group'/ home / alexandra / Documents / my-u-net'
Group'/ home / alexandra / Documents / my-u-net / warwick_dataset'
Group'/ home / alexandra / Documents / my-u-net / warwick_dataset / Warwick_Dataset'
数据集'标签'
尺寸:1x85
MaxSize:1x85
数据类型:H5T_IEEE_F64LE(双)
ChunkSize:[]
过滤器:无
FillValue:0.000000
Group'/ home / alexandra / Documents / my-u-net / warwick_dataset / Warwick_Dataset / train'
数据集'anno'
尺寸:522x775x3x85
MaxSize:522x775x3x85
数据类型:H5T_IEEE_F64LE(双)
ChunkSize:[]
过滤器:无
FillValue:0.000000
数据集“图像”
尺寸:522x775x3x85
MaxSize:522x775x3x85
数据类型:H5T_IEEE_F64LE(双)
ChunkSize:[]
过滤器:无
FillValue:0.000000`

当我用 h5read 读取标签数据集时,它可以工作 .

但是当我尝试训练我的网络时,我收到了这个错误:

I0713 09:47:18.620510 4278 layer_factory.hpp:77]创建图层loadMydata
I0713 09:47:18.620535 4278 net.cpp:91]创建图层loadMydata
I0713 09:47:18.620550 4278 net.cpp:399] loadMydata - > label
I0713 09:47:18.620580 4278 net.cpp:399] loadMydata - > anno
I0713 09:47:18.620600 4278 net.cpp:399] loadMydata - > image
I0713 09:47:18.620622 4278 hdf5_data_layer.cpp:79]从以下网址加载HDF5文件名列表:/home/alexandra/Documents/my-u-net/my_data.txt
I0713 09:47:18.620656 4278 hdf5_data_layer.cpp:93] HDF5文件数:1
F0713 09:47:18.621317 4278 hdf5.cpp:14]检查失败:H5LTfind_dataset(file_id,dataset_name_)无法找到HDF5数据集标签
检查故障堆栈跟踪:
@ 0x7f2edf557daa(未知)
@ 0x7f2edf557ce4(未知)
@ 0x7f2edf5576e6(未知)
@ 0x7f2edf55a687(未知)
@ 0x7f2edf908597 caffe :: hdf5_load_nd_dataset_helper <>()
@ 0x7f2edf907365 caffe :: hdf5_load_nd_dataset <>()
@ 0x7f2edf9579fe caffe :: HDF5DataLayer <> :: LoadHDF5FileData()
@ 0x7f2edf956818 caffe :: HDF5DataLayer <> :: LayerSetUp()
@ 0x7f2edf94fcbc caffe :: Net <> :: Init()
@ 0x7f2edf950b45 caffe :: Net <> :: Net()
@ 0x7f2edf91d08a caffe :: Solver <> :: InitTrainNet()
@ 0x7f2edf91e18c caffe :: Solver <> :: Init()
@ 0x7f2edf91e4ba caffe :: Solver <> :: Solver()
@ 0x7f2edf930ed3 caffe :: Creator_SGDSolver <>()
@ 0x40e67e caffe :: SolverRegistry <> :: CreateSolver()
@ 0x40794b火车()
@ 0x40590c主
@ 0x7f2ede865f45(未知)
@ 0x406041(未知)
@(无)(未知)
中止(核心倾倒)

在我的.prototxt文件中:

layer {
  top: 'label'
  top:'anno'
  top: 'image'
  name: 'loadMydata'
  type: "HDF5Data"
  hdf5_data_param { source: '/home/alexandra/Documents/my-u-net/my_data.txt' batch_size: 1 } 
  include: { phase: TRAIN }
}

我不知道我做错了什么,如果有人能帮我,那就太好了!

1 回答

  • 1

    您的hdf5文件 'uNetDataSet.h5' 中没有 label .
    你所拥有的是 '/home/alexandra/Documents/my-u-net/warwick_dataset/Warwick_Dataset/label' - 我希望你能发现差异 .

    尝试使用创建数据集

    h5create(['uNetDataSet.h5'],'/image',[522 775 3 numFrames]);
    h5create(['uNetDataSet.h5'],'/anno',[522 775 3 numFrames]);
    h5create(['uNetDataSet.h5'],'/label',[1 numFrames]);
    

    有关详细信息,请参阅this answer . 另请注意,在使用matlab将输出数据保存到hdf5之前,您可能需要 permute .

相关问题