1

新手在這裏喝咖啡。
我想在我自己的數據集上覆制LeNet。我的訓練數據是一維數據,可以表示爲1x3000矢量。對於每個1x3000向量,我有一個標籤,它是1x64維二進制向量的另一個1D向量。我有10萬個這樣的(數據,標籤)數據。我很困惑我怎麼能把這個餵給Caffe。所有的例子都是針對尺寸爲N x N的圖片。餵食長一維矢量數據,一維矢量標籤到咖啡

任何想法如何將這些數據進行處理以提供給Caffe?

我正在考慮對零矢量進行零填充,並使它成爲n(零填充)xN,但它似乎並不正確。 也可以將1x3000矢量切片爲1xn並將它們堆疊起來形成一個mxn矩陣是一個解決方案?有沒有人做過這個?

任何建議表示讚賞。

+0

相關:http://stackoverflow.com/q/29213108/1714410 – Shai

回答

0

Caffe可以輕鬆處理「數據」和「標籤」二維數據。
我猜想將數據提供給caffe最直接的方法是使用hdf5格式文件。您可以使用'data''label'數據集以二進制hdf5數據文件中的數據。然後,您可以使用"HDF5Data"圖層將數據提供給caffe。

+0

感謝Shai的建議。我有幾個跟進問題。那麼,在那種情況下,我的所有用於卷積層和合並層的內核也都是1xN尺寸的。那也是caffe支持的嗎? 2.我的'標籤'真的很長,所以我有點擔心如果這會在以後造成不好的結果。對於一個1x3000數據,我有64個(可能會增加到128個)二進制向量標籤。這不像數據屬於64個不同的類(因爲我已經看到了一些建議的多標籤解決方案)。一個標籤可以是2^64空間中的任何標籤,並且特定於一個1x3000數據。這裏有什麼建議嗎? – user2413711

+0

@ user2413711(1)是的,你應該使用'kernel_w'和'kernel_h'來指定非矩形內核(見''caffe.proto'](https://github.com/BVLC/caffe/blob/master/src詳情請參閱/caffe/proto/caffe.proto#L556)。 (2)您需要使用適當的損失層。對於二元標籤,我認爲你可以檢查['「」SigmoidCrossEntropyLoss「'](http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1SigmoidCrossEntropyLossLayer.html)層。 – Shai