Caffe支持多种格式的输入数据(HDF5 / lmdb / leveldb)。这只是挑选你觉得最舒服的那个问题。这里有几个选项:
convert_imageset 是您从构建caffe获得的命令行工具之一。
convert_imageset
用法如下:
您需要编写一个文本文件,其中每行以图像的文件名开头,后跟标量标签(例如0,1,2,...)
Datum
这需要构建caffe的python接口。在这里你写一些python代码:
numpy
label
这里的 Gustav Larsson在博客文章中将图像转换为lmdb的代码片段。在他的例子中,他构建了一个lmdb的图像和标签对,用于图像分类。
的 将lmdb加载到您的网络中: 强>
这与LeNet示例完全相同。此数据层位于描述LeNet模型的网络原型文本的开头。
layer { name: "mnist" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { scale: 0.00390625 } data_param { source: "examples/mnist/mnist_train_lmdb" batch_size: 64 backend: LMDB } }
源字段是将caffe指向刚刚创建的lmdb的位置的位置。
与性能更相关并且对于使其工作不重要的是指定如何规范化输入要素。这是通过 transform_param 领域。 CK +具有固定大小的图像,因此无需调整大小。但您需要做的一件事是将灰度值标准化。你可以通过平均减法来做到这一点。这样做的一个简单方法就是替换它的值 transform_param:scale 使用CK +数据集中灰度强度的平均值。
transform_param
transform_param:scale