Batch Normalization 批量归一化

具体的运算过程:

假设经过卷积计算过后得到的feature map的尺寸为 2*3*2*2。

其中2代表的是batch的大小,3代表的是通道channel的个数,2*2代表的是feature map的长和宽。

对应图片如下所示:

过程:我们要对batch中的每一个通道channel中的元素求均值和方差,对于这里而言,就是2*2*2 这8个数相加再除以8得到元素的均值。方差根据公式进行计算。这一步完成之后得到方差和均值。

下一步,对这8个元素中的每一个元素分别进行 这个数减去均值和方差,得到的数乘以γ+β。

对应的公式如下所是:

然后,对于每一个BN层,均值和方差只是对应channel的。每个channel都有一个,不能混用。

PS:最终经过BN层计算之后得到一个什么东西呢?

效果:

1、训练过程中遇到收敛速度很慢的问题时,可以通过引入BN层来加快网络模型的收敛速度。

2、遇到梯度消失或者梯度爆炸的问题时,可以考虑引入BN层来解决。

3、一般情况下,还可以通过引入BN层来加快网络的训练速度。

代码如下所是:

import torch
from torch import nn
# 在(0-1)范围内随机生成数据
# 其中2代表的是batch的大小
# 3代表的是通道channel的个数
# 2*2代表的是feature map的长和宽。
random_data=torch.rand(2,3,2,2)
# BatchNorm2d(3) 这里的3代表输入的通道数
bn=nn.BatchNorm2d(3)
ater_bn=bn(random_data)
# 随机生成的数据
print(random_data)
# BN之后的数据
print(ater_bn)

随机生成的图:4维的 2*3*2*2  全是 0到1之间的数据

BN之后的图:4维的 2*3*2*2

完结,撒花!!

Batch Normalization 批量归一化的运算过程的更多相关文章

  1. Batch Normalization批量归一化

    BN的深度理解:https://www.cnblogs.com/guoyaohua/p/8724433.html BN: BN的意义:在激活函数之前将输入归一化到高斯分布,控制到激活函数的敏感区域,避 ...

  2. Batch Normalization 批量标准化

    本篇博文转自:https://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效 ...

  3. 激活函数,Batch Normalization和Dropout

    神经网络中还有一些激活函数,池化函数,正则化和归一化函数等.需要详细看看,啃一啃吧.. 1. 激活函数 1.1 激活函数作用 在生物的神经传导中,神经元接受多个神经的输入电位,当电位超过一定值时,该神 ...

  4. 转载-通俗理解BN(Batch Normalization)

    转自:参数优化方法 1. 深度学习流程简介 1)一次性设置(One time setup)          -激活函数(Activation functions) - 数据预处理(Data Prep ...

  5. caffe︱深度学习参数调优杂记+caffe训练时的问题+dropout/batch Normalization

    一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优 ...

  6. batch normalization学习理解笔记

    batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...

  7. Neural Network模型复杂度之Batch Normalization - Python实现

    背景介绍 Neural Network之模型复杂度主要取决于优化参数个数与参数变化范围. 优化参数个数可手动调节, 参数变化范围可通过正则化技术加以限制. 本文从参数变化范围出发, 以Batch No ...

  8. 深度学习面试题21:批量归一化(Batch Normalization,BN)

    目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于201 ...

  9. 从头学pytorch(十九):批量归一化batch normalization

    批量归一化 论文地址:https://arxiv.org/abs/1502.03167 批量归一化基本上是现在模型的标配了. 说实在的,到今天我也没搞明白batch normalize能够使得模型训练 ...

  10. 【深度学习】批归一化(Batch Normalization)

    BN是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中"梯度弥散"的问题,从而使得训练深层网 ...

随机推荐

  1. 揭开 RocketMQ 事务消息的神秘面纱

    事务消息是 RocketMQ 的高级特性之一,相信很多同学都对于其实现机制很好奇. 这篇文章,笔者会从应用场景.功能原理.实战例子.实现细节四个模块慢慢为你揭开事务消息的神秘面纱. 1 应用场景 以电 ...

  2. Windows查询进程和杀死进程

    查询进程 查询进程占用的端口(通过端口查询) netstat -ano |findstr "端口号" 杀死进程 通过进程号查看所属进程名称 tasklist |findstr &q ...

  3. 你不知道的 HTTP Referer

    前言 上周突然发现自己的自己站点的图片全都403了,之前还是好好的,图片咋就全都访问不了呢?由于我每次发文章都是先发了掘金,然后再从掘金拷贝到我自己的站点,这样我就不用在自己的站点去上传图片了,非常方 ...

  4. 学习狂神Spring5_课堂笔记(更新中)

    Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天. 2002年,首次推出了Spring框架的雏形:interface21框架.官网为:www.interface21.io但是 ...

  5. UiAutomator2.0(转)

    1.     概述 UI测试(功能测试.黑盒测试)不需要测试者了解应用程序的内部实现细节,只需要知道当执行了某些特定的动作后是否会得到其预期的输出.这种测试方法,在团队合作中可以更好地分离的开发和测试 ...

  6. [POI2007]GRZ-Ridges and Valleys 题解

    (2022-12-28 ) AcWing 1106 洛谷 P3456 题目大意 找出一个图中所有大于(或小于)周围相邻的非连通块点的所有连通块个数. 就是说,对于一个连通块: 如果它周围的点都低于它, ...

  7. 如何通过cookie、session鉴权(nodejs/koa)

    http是一种无状态的协议,每一个请求都是独立的,即使同一个页面向服务器发送多次请求,服务器也无法区分是不是同一用户,所以这个时候可以借助于cookie来做身份认证,当用户登录成功,服务器为浏览器设置 ...

  8. 一篇博客带你上手Git

    概述 安装Git 下载官方网站,下载后安装包样式:双击安装,安装成功后右键文件会有如下选项证明安装成功. 基本配置 设置用户信息,桌面右键,选择Git bash here hecheng@LAPTOP ...

  9. 学好Elasticsearch系列-索引的批量操作

    本文已收录至 Github,推荐阅读 Java 随想录 微信公众号:Java 随想录 先看后赞,养成习惯. 点赞收藏,人生辉煌. 目录 基于 mget 的批量查询 基于 bulk 的批量增删改 增加 ...

  10. 优化Redis缓存淘汰机制解决性能测试中报错率逐渐攀升问题

    在某个查询场景的性能测试过程中,遇到了一个问题:测试过程中报错率逐渐攀升.进一步检查后发现,在查询业务所在应用的后台日志和平台应用的后台日志中,都出现了用户登录相关的报错信息.经过排查分析,发现了问题 ...