Caffe 的 BN(BatchNorm ) 层共有三个参数参数:均值、方差和滑动系数,BN层结构如下:

layer {

[plain]  view plain  copy
  1. bottom: "res2a_branch2b"
  2. top: "res2a_branch2b"
  3. name: "bn2a_branch2b"
  4. type: "BatchNorm"
  5. batch_norm_param {
  6. use_global_stats: false       //训练阶段和测试阶段不同,
  7. }
  8. include: { phase: TRAIN }
  9. }
  10. layer {
  11. bottom: "res2a_branch2b"
  12. top: "res2a_branch2b"
  13. name: "bn2a_branch2b"
  14. type: "BatchNorm"
  15. batch_norm_param {
  16. use_global_stats: true
  17. }
  18. include: { phase: TEST }
  19. }
  • use_global_stats:如果为真,则使用保存的均值和方差,否则采用滑动平均计算新的均值和方差。该参数缺省的时候,如果是测试阶段则等价为真,如果是训练阶段则等价为假。
  • moving_average_fraction:滑动平均的衰减系数,默认为0.999
  • eps:分母附加值,防止除以方差时出现除0操作,默认为1e-5(不同框架采用的默认值不一样),

在Caffe中使用Batch Normalization需要注意以下两点:

1. 要配合Scale层一起使用,具体参见http://blog.csdn.net/sunbaigui/article/details/50807398以及Residual Network

2. 训练的时候,将BN层的use_global_stats设置为false,然后测试的时候将use_global_stats设置为true,不然训练的时候会报“NAN”或者模型不收敛。

可选参数定义在 src\caffe\proto\caffe.proto 中,共有3个:

message BatchNormParameter {// 如果为真,则使用保存的均值和方差,否则采用滑动平均计算新的均值和方差。// 该参数缺省的时候,如果是测试阶段则等价为真,如果是训练阶段则等价为假。optional bool use_global_stats = 1;// 滑动平均的衰减系数,默认为0.999optional float moving_average_fraction = 2 [default = .999];// 分母附加值,防止除以方差时出现除0操作,默认为1e-5optional float eps = 3 [default = 1e-5];
}

BatchNorm的具体含义:

转载博客:
http://blog.csdn.net/shuzfan/article/details/52729424

caffe常用层:batchNorm使用相关推荐

  1. caffe中常用层: BatchNorm层详解

    Batchnorm原理详解 前言:Batchnorm是深度网络中经常用到的加速神经网络训练,加速收敛速度及稳定性的算法,可以说是目前深度网络必不可少的一部分.  本文旨在用通俗易懂的语言,对深度学习的 ...

  2. caffe常用层:Reduction层

    Layer type: Reduction 头文件位置:./include/caffe/layers/reduction_layer.hpp CPU 执行源文件位置: ./src/caffe/laye ...

  3. Caffe常用层参数介绍

    DATA crop:截取原图像中一个固定patch layers {name: "data"type: DATAtop: "data"top: "la ...

  4. caffe常用层:特殊的Math函数

    目录 目录 主要函数 caffe_cpu_gemm 函数 caffe_cpu_gemv 函数 caffe_axpy 函数 caffe_set 函数 caffe_add_scalar 函数 caffe_ ...

  5. caffe中的batchNorm层(caffe 中为什么bn层要和scale层一起使用)

    caffe中的batchNorm层 链接: http://blog.csdn.net/wfei101/article/details/78449680 caffe 中为什么bn层要和scale层一起使 ...

  6. Caffe学习系列(5):其它常用层及参数

    本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置. 1.softmax-loss so ...

  7. Caffe 源码 - BatchNorm 层与 Scale 层

    batch norm layer & scale layer 简述 Batch Normalization 论文给出的计算: 前向计算: 后向计算: BatchNorm 主要做了两部分: [1 ...

  8. caffe常见层及其prototxt设置

    输入: Convolution: layer {name: ""type: "Convolution"bottom: ""top: &quo ...

  9. Caffe 激励层(Activation)分析

    Caffe_Activation 一般来说,激励层的输入输出尺寸一致,为非线性函数,完成非线性映射,从而能够拟合更为复杂的函数表达式激励层都派生于NeuronLayer: class XXXlayer ...

最新文章

  1. Pandas使用to_dict函数将dataframe转化为字典(dict)格式数据并指定orientation参数生成不同形式的字典
  2. 洛谷.4245.[模板]任意模数NTT(MTT/三模数NTT)
  3. ACM 进阶计划~~转
  4. struts实战--登录功能实现
  5. Directx11教程(18) D3D11管线(7)
  6. getBoundingClientRect说明
  7. access实例_西门子PLC1200组态王跟Access数据库-⑥组态王变量
  8. 东大OJ-1430-PrimeNumbers
  9. 关于ios7的适配问题
  10. flash mx拖拽实例_Flash MX 2004片段面板预览
  11. 汽车故障诊断技术【6】
  12. Java 实训1:编写一个窗体程序显示日历表。
  13. 我的android手机在哪里打开,USB调试在哪里打开 手机USB调试模式设置大全
  14. 在linux上通过yum安装JDK
  15. C#编程,获取当前时间为一年的第几周的一种方法。
  16. 微信没有回车键怎么换行_微信打字怎么换行
  17. 解决导出Excel表的时候,中文文件名出现乱码的问题
  18. 【英语语法入门】 第29讲 情态动词的否定和疑问
  19. MATLAB中创建矩阵的方法
  20. 分不清?!Sketch Measure 和 Sketch Meaxure 有什么区别?

热门文章

  1. 2022阅读数据分析报告
  2. 看完 2022 雷军年度演讲,我总结了我的故事
  3. 对图像处理中的面向对象和基于基元的理解
  4. 乐高大颗粒作品15:移动篮球框
  5. vscode ( Visual Studio Code )设置中文、字体和字号
  6. 网络问答口碑营销的作用和价值分析
  7. MATLAB调用python文件以及调用.exe文件方法
  8. 图标icon,图标icon资源
  9. 印度电线标准IS 694(R2020),印度插头标准IS 1293(R2020)
  10. 【数据分析师-数据分析项目案例三】多因素房价预测分析案例