计算图像数据集的均值
在前一篇文章中我们已经知道了如何将自己的图像数据转换为caffe需要的db文件深度学习文章3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件 ,在进行模型的训练之前,我们还需要进行一步,就是计算图像数据集的均值。
1.为什么计算图像数据的均值?
通常来讲,在各类深度学习模型中都具有计算图像均值的操作,这是因为图像减去均值后,再进行训练/测试,会大大提高速度和精度,这是我们在进行大量计算时希望可以达到的效果。
在caffe中,我们如何得到这个均值,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值,而不需要重新对带测试的图像进行计算了。
在实际使用中,计算均值需要产生.binaryproto的均值文件,通常我们可以使用caffe提供的脚本直接计算,此外,如果在之后进行测试时也想使用均值,例如调用python接口,就需要生成python接口.npy文件,这个文件可以由之前.binaryproto文件转换得来。下面我们将就这两个文件的产生进行详述。
2.二进制格式的均值文件
在caffe根目录下的build/tools/文件夹下,caffe为我们提供了计算均值的文件compute_mean.cpp,编译后在caffe根目录下的tools文件夹下,我们可以直接调用