Batch Normalization 批量归一化的运算过程
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 批量归一化的运算过程的更多相关文章
- Batch Normalization批量归一化
BN的深度理解:https://www.cnblogs.com/guoyaohua/p/8724433.html BN: BN的意义:在激活函数之前将输入归一化到高斯分布,控制到激活函数的敏感区域,避 ...
- Batch Normalization 批量标准化
本篇博文转自:https://www.cnblogs.com/guoyaohua/p/8724433.html Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效 ...
- 激活函数,Batch Normalization和Dropout
神经网络中还有一些激活函数,池化函数,正则化和归一化函数等.需要详细看看,啃一啃吧.. 1. 激活函数 1.1 激活函数作用 在生物的神经传导中,神经元接受多个神经的输入电位,当电位超过一定值时,该神 ...
- 转载-通俗理解BN(Batch Normalization)
转自:参数优化方法 1. 深度学习流程简介 1)一次性设置(One time setup) -激活函数(Activation functions) - 数据预处理(Data Prep ...
- caffe︱深度学习参数调优杂记+caffe训练时的问题+dropout/batch Normalization
一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优 ...
- batch normalization学习理解笔记
batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...
- Neural Network模型复杂度之Batch Normalization - Python实现
背景介绍 Neural Network之模型复杂度主要取决于优化参数个数与参数变化范围. 优化参数个数可手动调节, 参数变化范围可通过正则化技术加以限制. 本文从参数变化范围出发, 以Batch No ...
- 深度学习面试题21:批量归一化(Batch Normalization,BN)
目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于201 ...
- 从头学pytorch(十九):批量归一化batch normalization
批量归一化 论文地址:https://arxiv.org/abs/1502.03167 批量归一化基本上是现在模型的标配了. 说实在的,到今天我也没搞明白batch normalize能够使得模型训练 ...
- 【深度学习】批归一化(Batch Normalization)
BN是由Google于2015年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中"梯度弥散"的问题,从而使得训练深层网 ...
随机推荐
- 1. CS和BS的优缺点
1. CS CS : 客户端服务器架构模式 优点 : 充分利用客户端机械的资源 , 减轻服务器的符合 缺点 : 需要安装 : 升级维护成本较高 2. BS 优点 : 客户端不需要安装 : 维护 ...
- memcached使用中踩的一些坑
背景 线上启用memcached(以下简称mc)作为热点缓存组件已经多年,其稳定性和性能都经历住了考验,这里记录一下踩过的几个坑. 大key存储 某年某月某日,观察mysql的读库CPU占比有些异常偏 ...
- stream流根据集合中的元素的属性进行去重的方法
public class StreamListTest { public static void main(String[] args) { List<Student> studentLi ...
- [MAUI]用纯C#代码写两个漂亮的时钟
@ 目录 时钟1 绘制锯齿表盘 绘制指针 绘制沿路径文本 时钟2 绘制表盘 绘制指针 项目地址 谷歌在2021年5月份推出的Android 12给我们带来了新的UI设计规范Material You,你 ...
- 【Python】万字长文,Locust 性能测试指北(上)
Locust Locust 是比较常见的性能测试工具,底层基于 gevent.官方介绍 它是一款易于使用.可编写脚本且可扩展的性能测试工具,可以让我们使用常规 Python 代码定义用户的行为,而不必 ...
- AcWing 第87场周赛题解
T1 移动棋子 算出数值为 \(1\) 的点离 \((3, 3)\) 的距离即可. #include <iostream> #include <cstring> #includ ...
- 基于GPT搭建私有知识库聊天机器人(五)函数调用
文章链接: 基于GPT搭建私有知识库聊天机器人(一)实现原理 基于GPT搭建私有知识库聊天机器人(二)环境安装 基于GPT搭建私有知识库聊天机器人(三)向量数据训练 基于GPT搭建私有知识库聊天机器人 ...
- 筛选出N以内的素数
解题思路:1.素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.(也就是只有 1 和它本身能整除)2.利用两个for循环来判断素数. 注意事项:1.注意for添加花括号.2.注意输 ...
- kali下对压缩包的压缩与解压(转)
kali linux 压缩文件解压缩命令(包含7z) tar tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包 ...
- js将数字金额转换成中文金额格式
在开发中我们经常会遇到处理数字的问题,下面介绍一种处理数字金额转换为中文金额的方式: 我们通常使用三种书面数字系统:全球使用的阿拉伯数字系统和两种本地数字系统(繁体.简体).常规时我们使用阿拉伯数字( ...