caffe的输入层总结

来自图片:ImageDataLayer

最简单的输入方式,适用于分类任务,输入就是一个文件文件,而文本文件每行就是一个图片保存路径名称和它的数值标签即可。如果图片都已以文件夹或文件名保存了,可以非常容易地使用lsawk sed等命令建立其要求的文件文件。

来自LMDB或LevelDB数据库:DataLayper

每个条目记录值就是一个Datum,具体代码中就是使用datum.ParseFromString(cursor_->value())获取的。

但是原始的Datum只有一个data项和一个label项和可供使用的float_data项(直接保存的浮点数数据替代bytes表示的data)。如果您的输入数据除了图片还有别的,想自己新写输入层,除了使用这个float_data项外,您可以使用我pCaffe,对Datum定义了扩展条目,可以通过设置扩展字段的方式增加别的data条目。

来自HDF5数据文件:HDF5DataLayer

HDF5数据层参数中不能包含transform参数,不支持数据的图像预处理,直接拷贝数据使用。如果数据确实需要预处理,可以在其后增加reshape crop等层。

来自内存:MemoryDataLayer

每个batch开始前,数据必须使用MemoryDataLayer::Reset方法将内存地址传给网络,caffe会免拷贝地使用它。

自动切图:WindowData

主要是根据窗口定义文件自动地切图贴标签,与基准窗口overlap大于阈值的设为前景窗,否则设为背景窗。 窗口文件里可根据每张图手工控制这些指标,比如可以通过增大小样本类的窗口数以平衡样本不均衡现象。

DummyDataLayer

DummyData有Filler参数,设置来可以自动根据需要填充数据,在构建测试代码时相当好用。

InputLayer

这层参数只有shape,一般仅用于deploy网络中。替代旧式的位于网络参数中的input_shape参数。

PythonLayer

python层用来书写自定义数据的输入层是相当方便的。比如py-faster-rcnn就使用python层来搞定 GroundTruth BoundingBox 的输入。

支持动态并行和源码级plugins的Caffe——pCaffe

One thought on “caffe的输入层总结”

发表评论

电子邮件地址不会被公开。 必填项已用*标注