1. 计算均值
在进行深度学习网络训练的时候,为了提升训练的精度等,需要数据集的均值,那么该均值文件是怎么来的呢?这是通过安装caffe完成之后tools目录下的compute_image_mean实现的。调用它去计算数据集的均值,再在训练的时候调用它就好了,下面是调用它实现数据集均值计算的例子。
./compute_image_mean ~/Desktop/handwrite_chinese/train_data/ ~/Desktop/handwrite_chinese/handwrite_mean.binaryproto
参数解释:
~/Desktop/handwrite_chinese/train_data/:是存放训练lmdb二进制文件的目录,在之前的博客中讲过该文件是如何生成的
~/Desktop/handwrite_chinese/handwrite_mean.binaryproto:是保存生成之后的均值文件路径
2. 使用方法
这里直接使用python的接口将其写在了网络定义中
data, label = L.Data(source=lmdb_path, backend=P.Data.LMDB, batch_size=batch_size,
ntop=2, transform_param=dict(scale=0.00390625, mean_file='./handwrite_mean.binaryproto'))
使用之后的网络定义为:
layer {
name: "Data1"
type: "Data"
top: "Data1"
top: "Data2"
transform_param {
scale: 0.00390625
mean_file: "./handwrite_mean.binaryproto"
}
data_param {
source: "val_data"
batch_size: 64
backend: LMDB
}
}