如何在caffe中training/testing我自己的数据集?

How to training/testing my own dataset in caffe?

我从 Caffe 和 mnist 示例开始 运行 很好。
我的火车和标签数据为 data.mat。 (我有 300 个具有 30 个特征和标签的训练数据 (-1, +1) 已保存在 data.mat 中)。

但是我不太明白如何使用caffe实现自己的数据集?

有没有一步一步的教程可以教我?

非常感谢!!!!如有任何建议,我们将不胜感激!

我认为将数据从 Matlab 传输到 caffe 的最直接方法是通过 HDF5 文件。

首先,使用 hdf5write 将 Matlab 中的数据保存在 HDF5 文件中。我假设您的训练数据存储在大小为 300×30 的变量名称 X 中,标签存储在 y 一个 300×1 向量中:

hdf5write('my_data.h5', '/X', 
  single( permute(reshape(X,[300, 30, 1, 1]),[4:-1:1]) ) );
hdf5write('my_data.h5', '/label', 
  single( permute(reshape(y,[300, 1, 1, 1]),[4:-1:1]) ), 
  'WriteMode', 'append' );

请注意,数据保存为一个 4D 数组:第一个维度是要素的数量,第二个维度是要素的维度,最后两个是 1(表示没有空间维度)。另请注意,HDF5 中数据的名称为 "X""label" - 这些名称应用作输入数据层的 "top" blob。

为什么permute?请参阅 以获得解释。

您还需要准备一个文本文件,列出您正在使用的所有 hdf5 文件的名称(在您的情况下,只有 my_data.h5)。文件 /path/to/list/file.txt 应该只有一行

/path/to/my_data.h5

现在您可以将输入数据层添加到 train_val.prototxt

layer {
  type: "HDF5Data"
  name: "data"
  top: "X"     # note: same name as in HDF5
  top: "label" # 
  hdf5_data_param {
    source: "/path/to/list/file.txt"
    batch_size: 20
  }
  include { phase: TRAIN }
}

关于hdf5输入层的更多信息,您可以在.

中查看