我開始與Caffe和mnist的例子運行良好。
我的火車和標籤數據爲data.mat
。 (我有300個訓練數據,有30個功能,標籤(-1, +1)
已保存在data.mat
)。如何在caffe中訓練/測試我自己的數據集?
但是,我不太瞭解如何使用caffe來實現我自己的數據集?
有沒有一步一步的教程可以教我?
非常感謝!任何意見,將不勝感激!
我開始與Caffe和mnist的例子運行良好。
我的火車和標籤數據爲data.mat
。 (我有300個訓練數據,有30個功能,標籤(-1, +1)
已保存在data.mat
)。如何在caffe中訓練/測試我自己的數據集?
但是,我不太瞭解如何使用caffe來實現我自己的數據集?
有沒有一步一步的教程可以教我?
非常感謝!任何意見,將不勝感激!
我認爲將數據從Matlab傳輸到caffe最直接的方法是通過HDF5文件。
首先,使用hdf5write
將您的數據保存在HDF5文件中的Matlab中。我假設你的訓練數據被存儲在一個變量名尺寸300按30和標籤存儲在y
300-1矢量的X
:
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"
斑點。
爲什麼permute
?請參閱this answer以獲得解釋。
您還需要準備一個文本文件,列出您正在使用的所有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輸入層,您可以在this answer中看到。
您是否設法使用Caffe在MATLAB上運行網絡培訓? – Royi
@Drazick抱歉,我不會將Matlab和caffe混合使用。 Python界面好得多 – Shai
我看到你回答了很多麻煩的MATLAB用戶,因此我認爲你有一些經驗。它真的好像MATLAB接口是越野車。我有一些在命令行上工作但崩潰MATLAB。 – Royi