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

我从Caffe开始,这个例子运行得很好。
我有火车和标签数据data.mat 。 (我有300个训练数据,有30个特征,标签是(-1, +1) ,保存在data.mat )。

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

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

非常感谢!!!! 任何意见将不胜感激!

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

首先,使用hdf5write将您的数据保存在HDF5文件中的Matlab中。 我假设你的训练数据存储在一个大小为300乘30的variables名称X ,并且标签存储在一个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' ); 

请注意,数据保存为四维数组:第一个维度是要素的数量,第二个维度是要素的维度,最后两个维度是1(不包含空间维度)。 还要注意HDF5中的数据名称是"X""label" – 这些名称应该用作input数据层的"top"斑点。

为什么要permute ? 请看这个答案的解释。

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

/path/to/my_data.h5

现在你可以添加一个input数据层到你的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 } } 

有关hdf5input图层的更多信息,你可以在这个答案中看到。