无法找到HDF5数据集数据

时间:2016-10-31 08:56:30

标签: deep-learning caffe hdf5 hdf

我很喜欢咖啡和深度学习。我想使用从here下载的数据集来训练我的模型。

我的火车数据有hdf5格式。它还有以下参数。

{
    "debug": false, 
    "git_revision": "60c477dae59f3d1378568e2ebea054a135683e2f", 
    "height": 128, 
    "no_train_mirrors": false, 
    "output_dir": "/tmp/parse27k_crops_64x128", 
    "output_mode": "hdf5", 
    "padding": 32, 
    "padding_mode": "edge", 
    "parse_path": "/fast_work/sudowe/parse27k", 
    "single_threaded": false, 
    "verbose": false, 
    "width": 64
}

我的火车模型中有以下数据层。

layer {
  name: "data"
  type: "HDF5Data"
  top: "data"
  top: "label"
  hdf5_data_param {
    source: "path_to_caffe/caffe/examples/hdf5_classification/data/train.txt"
    batch_size: 10
  }
   include {
    phase: TRAIN
  }
}

当我尝试训练train.txt文件中提到的train.hdf5数据时,我收到以下错误消息。

I1031 11:52:10.185920  8670 layer_factory.hpp:77] Creating layer data
I1031 11:52:10.185933  8670 net.cpp:100] Creating Layer data
I1031 11:52:10.185940  8670 net.cpp:408] data -> data
I1031 11:52:10.185957  8670 net.cpp:408] data -> label
I1031 11:52:10.185971  8670 hdf5_data_layer.cpp:79] Loading list of HDF5 filenames from: path_to_caffe/caffe/examples/hdf5_classification/data/train.txt
I1031 11:52:10.186003  8670 hdf5_data_layer.cpp:93] Number of HDF5 files: 2
F1031 11:52:10.186825  8670 hdf5.cpp:14] Check failed: H5LTfind_dataset(file_id, dataset_name_) Failed to find HDF5 dataset data
*** Check failure stack trace: ***
    @     0x7f231a6a1daa  (unknown)
    @     0x7f231a6a1ce4  (unknown)
    @     0x7f231a6a16e6  (unknown)
    @     0x7f231a6a4687  (unknown)
    @     0x7f231acca607  caffe::hdf5_load_nd_dataset_helper<>()
    @     0x7f231acc93d5  caffe::hdf5_load_nd_dataset<>()
    @     0x7f231ad5172e  caffe::HDF5DataLayer<>::LoadHDF5FileData()
    @     0x7f231ad50548  caffe::HDF5DataLayer<>::LayerSetUp()
    @     0x7f231acaf3ac  caffe::Net<>::Init()
    @     0x7f231acb0235  caffe::Net<>::Net()
    @     0x7f231ae0332a  caffe::Solver<>::InitTrainNet()
    @     0x7f231ae0442c  caffe::Solver<>::Init()
    @     0x7f231ae0475a  caffe::Solver<>::Solver()
    @     0x7f231adf8453  caffe::Creator_SGDSolver<>()
    @           0x40f0fe  caffe::SolverRegistry<>::CreateSolver()
    @           0x408134  train()
    @           0x405b3c  main
    @     0x7f23196adf45  (unknown)
    @           0x4063ab  (unknown)
    @              (nil)  (unknown)

任何形式的帮助或建议都会非常感激。

1 个答案:

答案 0 :(得分:4)

在caffe输入数据层中,输出blob只能以 .hdf5 文件中的数据集名称命名。 我的数据集具有以下结构

crops       Dataset {27482, 3, 128, 192}
labels      Dataset {27482, 12}
mean        Dataset {3, 128, 192}
pids        Dataset {27482}

在@Shai的帮助下,我解决了这个问题:

layer {
  name: "data"
  type: "HDF5Data"
  top: "crops"
  top: "labels"
  include {
    phase: TRAIN
  }
  hdf5_data_param {
    source: "path_to_caffe/examples/hdf5_classification/data/train.txt"
    batch_size: 64
  }
}