单浮点标签,caffe中的LMDB格式
Single Float label , LMDB Format in caffe
我正在使用 caffe 解决回归问题,我想知道如何将 lmdb 格式用于单个浮点标签。
目前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,还是不行。
请问有大佬解决这个问题吗?尽快解决它对我来说非常重要。
提前致谢。
通过强制和调整 caffe 使用 LMDB 数据集中的浮动标签来解决您的问题似乎不是一个很好的策略。
我建议改为使用 caffe 的 "HDF5Data"
层。使用 hdf5 格式为 caffe 存储数据更加灵活,并且允许您拥有浮动标签。
有关详细信息,请参阅 。
如果你坚持强制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());
我正在使用 caffe 解决回归问题,我想知道如何将 lmdb 格式用于单个浮点标签。
目前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,还是不行。
请问有大佬解决这个问题吗?尽快解决它对我来说非常重要。
提前致谢。
通过强制和调整 caffe 使用 LMDB 数据集中的浮动标签来解决您的问题似乎不是一个很好的策略。
我建议改为使用 caffe 的 "HDF5Data"
层。使用 hdf5 格式为 caffe 存储数据更加灵活,并且允许您拥有浮动标签。
有关详细信息,请参阅
如果你坚持强制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());