单浮点标签,caffe中的LMDB格式

时间:2016-12-21 11:09:59

标签: machine-learning neural-network deep-learning caffe lmdb

我正在使用caffe来解决回归问题,我想知道如何将格式用于单个float标签。

目前,caffe仅支持lmdb数据的int32类型标签(Datumlabel的类型为int32)。
为了更改此默认行为,我更改了caffe中的一些文件,如下所示,但问题仍然存在,转换后我的标签全部为零。

caffe.proto -> line36 : int32 to float
convert_imageset.cpp -> line 75 and 77 : int to float
io.cpp and io.hpp -> all the labels were int , I changed them to float 

毕竟我再次编译了caffe,但它不起作用。

有没有人可以解决这个问题。尽快解决它对我来说非常重要。

提前致谢。

2 个答案:

答案 0 :(得分:1)

通过强制和调整caffe来解决问题,以便在LMDB数据集中使用浮动标签,这似乎不是一个很好的策略。

我建议使用caffe的"HDF5Data"图层。使用hdf5格式存储caffe的数据要灵活得多,并允许您使用浮动标签。

有关详细信息,请参阅this answer

答案 1 :(得分:1)

如果您坚持强制caffe支持浮动标签,您可能还需要更改convert_imageset.cpp line 81
目前,此行使用atoi将字符串转换为 int

label = atoi(line.substr(pos + 1).c_str());

您应该将其转换为用户atof以将字符串转换为 float

label = atof(line.substr(pos + 1).c_str());