原文地址:

https://blog.csdn.net/elysion122/article/details/79628587

-------------------------------------------------------------------------------------------------

因为最近在将一个caffe的model移植到pytorch上,发现移植过去就没法收敛了,因此专门研究了一些细节。

batch normalization的公式如下:

caffe和pytorch在代码细节上略有不同,但是基本功能是一样的。

Caffe 是使用BN层和Scale层来实现Batch normalization 的,简单地说就是BN层用来计算方差均值,Scale层进行归一化,这个很多技术博客都已经分析过了。

其中BN层中有三个mult_lr:0比较奇怪,经过查资料,我的理解是BN层记录了三个数据:均值、方差、滑动系数,这三个数据不需要学习,仅仅需要根据进入网络的数据进行计算,因此设置为0。据说新版的caffe已经不需要专门设置这三个数据了。

scale可以设置是不是需要bias,应该表示的是需不需要 ββ

Pytorch的BN层实现了计算均值方差并且归一化的步骤,现在不同的版本参数略有不同,最新的  0.4.* 版本  多了一个参数。

class torch.nn.BatchNorm3d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  • momentum=0.001和caffe默认值0.999,应该是一个意思,只不过一个是计算的1-momentum。
  • affine表示要不要两个系数γ和βγ,β

  • track_running_stats是    0.4(版本) 新出的一个参数,据说是追踪var和mean的,目前不是很清楚作用,等明白了再来更新。

【转载】 Caffe BN+Scale层和Pytorch BN层的对比的更多相关文章

  1. caffe中使用python定义新的层

    转载链接:http://withwsf.github.io/2016/04/14/Caffe-with-Python-Layer/ Caffe通过Boost中的Boost.Python模块来支持使用P ...

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

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

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

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

  4. Caffe源码阅读(1) 全连接层

    Caffe源码阅读(1) 全连接层 发表于 2014-09-15   |   今天看全连接层的实现.主要看的是https://github.com/BVLC/caffe/blob/master/src ...

  5. caffe中全卷积层和全连接层训练参数如何确定

    今天来仔细讲一下卷基层和全连接层训练参数个数如何确定的问题.我们以Mnist为例,首先贴出网络配置文件: name: "LeNet" layer { name: "mni ...

  6. caffe怎么把全连接层转成convolutional层

    caffe中有把fc层转化为conv层的,其实怎么看参数都是不变的,对alex模型来说,第一个fc层的参数是4096X9216,而conv的维度是4096x256x6x6,因此参数个数是不变的,只是需 ...

  7. 【转】Caffe初试(七)其它常用层及参数

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

  8. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...

  9. 基础才是重中之重~Data层如何调用BLL层的方法,如果觉得奇怪请看本文章

    回到目录 看似不伦不类 这个题目有点不伦不类,或者说有点伪模式了,不错,确实是这样,我们正确的开发思维是WEB层->BLL层->DATA层,每个层有对它下层的引用,下层不能引用上层,因为这 ...

随机推荐

  1. 切换JDK版本时修改JAVA_HOME环境变量不生效(转)

    当电脑上存在多个版本的JDK时,可能 会遇到想切换版本时无论你如何改JAVA_HOME的路径 进入cmd java -version 都无法得到最新设置的JDK版本 如果遇到类似以下信息 Regist ...

  2. 从使用角度看 ReentrantLock 和 Condition

    java 语言中谈到锁,少不了比较一番 synchronized 和 ReentrantLock 的原理,本文不作分析,只是简单介绍一下 ReentrantLock 的用法,从使用中推测其内部的一些原 ...

  3. Hotspot的minor GC

    内容来自<java性能优化>. 上图展示了Hotspot minor GC的过程:eden中的存活对象和from中"不够老"的对象,被移动到to中,from中" ...

  4. Eclipse导入Oracle/MySQL数库驱动包教程

    在操作数据库时除了import相关的SQL类外,还得在项目中导入数据库的驱动才能连接和操作数据库. 而数据库驱动jar包在默认Java的lib里是没有的,要自己到官网下载导入:本教程以Oracle为例 ...

  5. SpringBoot鸡汤(注解集合)

    1.(ConfigBean.java :是一个带有属性的bean类) @Configuration @ConfigurationProperties(prefix = “com.md”) @Prope ...

  6. Android 常用动画

    一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha :渐变透明度动画效果 scale :渐变尺寸伸缩 ...

  7. SpringBoot配置文件的加载位置

    1.springboot启动会扫描以下位置的application.properties或者application.yml文件作为SpringBoot的默认配置文件 --file:/config/ - ...

  8. 总结5条对学习Linux系统有帮助的经验心得

    作为国产手机中的代表厂商,OPPO一直走在国内的前沿.不仅手机出货量在国内遥遥领先,而且在国外也抢占不少的市场份额.前段时间,OPPO在台湾地区签下田馥甄和林宥嘉担任OPPO R9s的代言人外,在东南 ...

  9. day11- python生成式和生成器

    列表生成式 列表生成式是python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理.语法格式为: [exp for val in collection i ...

  10. day10-高阶函数

    高阶函数 高阶函数:就是把函数当成参数传递的一种函数,例如: def add(x,y,f): return f(x)+f(y) print(add(-8,11,abs)) 结果: 19 解释: 调用a ...