Caffe4——计算图像均值

均值削减是数据预处理中常见的处理方式,按照之前在学习ufldl教程PCA的一章时,对于图像介绍了两种:第一种常用的方式叫做dimension_mean(个人命名),是依据输入数据的维度,每个维度内进行削减,这个也是常见的做法;第二种叫做per_image_mean,ufldl教程上说,在natural images上训练网络时;给每个像素(这里只每个dimension)计算一个独立的均值和方差是make little sense的;这是因为图像本身具有统计不变性,即在图像的一部分的统计特性和另一部分相同。作者最后建议,如果你训练你的算法在非natural images(如mnist,或者在白背景存在单个独立的物体),其他类型的规则化是值得考虑的。但是当在natural images上训练时,per_image_mean是一个合理的默认选择。

本文中在imagenet数据集上采用的是dimension_mean的方法。

一:程序开始

make_image_mean.sh文件调用代码:

EXAMPLE=examples/imagenet
DATA=data/ilsvrc12
TOOLS=build/tools
$TOOLS/compute_image_mean $EXAMPLE/ilsvrc12_train_lmdb \
$DATA/imagenet_mean.binaryproto<strong>
</strong>

二:make_image_mean.cpp函数分析

输入参数:lmdb文件 均值文件imagenet_mean.binaryproto

2.1 头文件分析

#include<stdint.h>//定义了几种扩展的整数类型和宏
#include<algorithm>//输出数组的内容、对数组进行排序、反转数组内容、复制数组内容等操作,
#include<string>
#include<utility>//utility头文件定义了一个pair类型,pair类型用于存储一对数据;它也提供一些常用的便利函数、或类、或模板。大小求值、值交换:min、max和swap。
#include<vector>//可以自动扩展容量的数组

#include"boost/scoped_ptr.hpp"
#include"gflags/gflags.h"
#include"glog/logging.h"

#include"caffe/proto/caffe.pb.h"
#include"caffe/util/db.hpp"//引入包装好的lmdb操作函数
#include"caffe/util/io.hpp"//引入opencv中的图像操作函数
usingnamespacecaffe;  //引入caffe命名空间
usingstd::max;//
usingstd::pair;
using boost::scoped_ptr;

2.2 gflags宏定义string变量

DEFINE_string(backend, "lmdb",

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值