【问题标题】:Single Float label , LMDB Format in caffecaffe中的单浮点标签,LMDB格式
【发布时间】:2017-05-06 19:07:09
【问题描述】:

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

目前,caffe 仅支持 lmdb 数据的 int32 类型标签(Datum 中的 label 类型为 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 但它不起作用。

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

提前致谢。

【问题讨论】:

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


【解决方案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());

【讨论】:

  • 感谢您的回答
  • 只有这一行,不是我在问题中提到的那些?
  • 谢谢,我会检查并通知你
【解决方案2】:

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

我建议改用 caffe 的 "HDF5Data" 层。使用 hdf5 格式存储 caffe 的数据更加灵活,并且允许您拥有浮动标签。

欲了解更多信息,请参阅this answer

【讨论】:

  • 谢谢,使用“HDF5Data”,因为当前版本有限制大小,我们需要拆分数据,这意味着我们必须单独转换每一块(以满足限制大小)数据?
猜你喜欢
  • 2018-07-09
  • 2017-03-09
  • 2016-10-31
  • 2016-01-15
  • 2016-02-11
  • 2015-05-25
  • 2016-01-12
  • 1970-01-01
  • 2020-04-16
相关资源
最近更新 更多