当前位置: 首页 > news >正文

Pytorch中的BN和IN(affine仿射, track_running_stats)

BN,IN都是这个公式

 其中μ和σ是running_mean和running_var(方差variance)

γ和β(gamma, beta) 是weight和bias, 也被称作缩放和平移参数

 

对于BN来说,只有γ和β才是learnable params

这是稍微复杂的写的BN的过程

 仿射(affine)指的就是最后一步

如果affine=False 则固定γ=1,β=0,并且不能学习被更新

如果 track_running_stats=True,表示跟踪整个训练过程中的batch的统计特性,得到方差和均值,而不只是仅仅依赖与当前输入的batch的统计特性。相反的,如果track_running_stats=False那么就只是计算当前输入的batch的统计特性中的均值和方差了。

为什么会有gamma, beta这两个参数?

      让BN能够把feature通过学习可以缩放成一个任意 方差为某个值,均值为某个值的东西(李沐)

      如果单纯地使用前三个公式,有可能会影响一些层的表达能力,例如,如果使用激活函数使用sigmoid,那么这个操作会强制输入数据分布在sigmoid接近线性的部分,接近线性的模型显然不好(影响整个模型的表达能力)。所以文中说把前三个公式作为基本变换(单位变换),加上放缩γ和平移β后再拿来使用,这两个参数是可以学习的。

      在极端情况下,即]时,经过BN层的数据没有变化。即

做BN的时候,每个channel都会做BN

相关文章:

  • Pytorch修改tensor值
  • Siamese Network(孪生网络/连体网络) (few-shot learning)
  • inplace=True (原地操作)
  • 服务器内存泄漏
  • linux快速目录切换(cd - ,dirs, pushd, popd)
  • Python同时输出到屏幕和文件(Logger)
  • 图像通道转换——tensor从[h, w, c]转为[c, h, w] (permutetranspose和view的区别)(reshape和view)
  • linux服务器精确kill掉占用某几张卡的显存的程序
  • onnx 跨框架的模型中间表达框架(onnx.js)
  • Linux下删除文件后变成.nfsxxxxxx
  • linux lsof命令(查看哪个进程在占用文件)
  • TensorRT(GIE)
  • tensor与PIL.Image转换
  • numpy array与PIL.Image的转换
  • PyTorch Lightning (pl)
  • Bytom交易说明(账户管理模式)
  • CSS中外联样式表代表的含义
  • Docker 笔记(2):Dockerfile
  • Docker下部署自己的LNMP工作环境
  • ES6系列(二)变量的解构赋值
  • gf框架之分页模块(五) - 自定义分页
  • Git初体验
  • Linux Process Manage
  • quasar-framework cnodejs社区
  • Vue 2.3、2.4 知识点小结
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 初识MongoDB分片
  • 提醒我喝水chrome插件开发指南
  • 移动端唤起键盘时取消position:fixed定位
  • 再次简单明了总结flex布局,一看就懂...
  • 7行Python代码的人脸识别
  • Java数据解析之JSON
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #FPGA(基础知识)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (4.10~4.16)
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./和../以及/和~之间的区别
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net 无限分类
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • @Builder用法
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [C++] new和delete
  • [CakePHP] 在Controller中使用Helper
  • [CodeForces-759D]Bacterial Melee
  • [Docker]五.Docker中Dockerfile详解