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年提出,这是一个深度神经网络训练的技巧,它不仅可以加快了模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中"梯度弥散"的问题,从而使得训练深层网 ...
随机推荐
- GPU技术在大规模数据集处理和大规模计算中的应用
目录 GPU 技术在大规模数据集处理和大规模计算中的应用 随着深度学习在人工智能领域的快速发展,大规模数据处理和大规模计算的需求日益增长.GPU(图形处理器)作为现代计算机的重要部件,被广泛应用于这些 ...
- .Net 472&6.0 Razor编译时的小差异
前言 几个月前在进行着.Net 472到6.0的升级,复用原有代码,在对Razor进行迁移中,发现原运行正常的代码,却存在报错,深入研究发现是Core下对Razor编译有一些变动. 问题复现 472 ...
- 使用Kettle定时从数据库A刷新数据到数据库B
一.需求背景 由于项目场景原因,需要将A库(MySQL)中的表a.表b.表c中的数据定时T+1 增量的同步到B库(MySQL).这里说明一下,不是数据库的主从备份,就是普通的数据同步.经过技术调研,发 ...
- PostgreSQL 12 文档: 部分 III. 服务器管理
部分 III. 服务器管理 这部份覆盖了PostgreSQL数据库管理员感兴趣的主题.包括软件安装.搭建和配置一个服务器.管理用户和数据库以及维护任务.任何想要运行一个PostgreSQL服务器的人( ...
- Mysql基础篇(四)之事务
一. 事务简介 事务是一组操作的集合,它是一个不可分隔的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败. 就比如:张三给李四转账1000块钱 ...
- 解决Springboot项目打成jar包后获取resources目录下的文件失败的问题
前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] c ...
- 一个C#跨平台的机器视觉和机器学习的开源库
大家都知道OpenCV是一个跨平台的机器视觉和机器学习的开源库,可以运行在Linux.Windows.Android和Mac OS操作系统上,由C++开发. 今天给大家介绍一个用C#对OpenCV封装 ...
- Web网页音视频通话之Webrtc相关操作(二)
效果图 HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Hugging News #0717: 开源大模型榜单更新、音频 Transformers 课程完成发布!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- Git 环境配置(详解版)
前言 Git下载官网:https://git-scm.com/downloads 本次使用Github为配置前提(Gitee步骤类似) 环境搭建 1.git安装好去GitHub上注册一个账号,注册好后 ...