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. OOP第三阶段题目集总结|课程总结-22201608-柯汶君

      第三阶段的题目集时间跨度大,内容比较充实,对前面学习过的类的继承,多态,接口进行了巩固练习,加深我们对多态的理解,学会更好地改善代码的结构.同时对最后阶段所学习的集合框架体系(Set.Map等)比 ...

  2. 我用numpy实现了VIT,手写vision transformer, 可在树莓派上运行,在hugging face上训练模型保存参数成numpy格式,纯numpy实现

    先复制一点知乎上的内容 按照上面的流程图,一个ViT block可以分为以下几个步骤 (1) patch embedding:例如输入图片大小为224x224,将图片分为固定大小的patch,patc ...

  3. 【HTML】Echart图表

    layui-echarts 简介 基于layui 实现的 echart 图表 Echart 官网 示例 Echart示例 下载Echart Echart下载 我们选择最下面的在线定制 我这里就按照它默 ...

  4. 基于GPT搭建私有知识库聊天机器人(三)向量数据训练

    在前面的文章中,我们介绍了实现原理和基本环境安装.本文将重点介绍数据训练的流程,以及如何加载.切割.训练数据,并使用向量数据库Milvus进行数据存储. 1. 数据训练依赖于向量数据库 在本文中,我们 ...

  5. RTC+AI|“即智”数智人创新内容生产体验,为企业降本增效再提速

    号称"史上最卷"的618年中大促落下帷幕,几大电商巨头在直播投入和短视频内容建设上持续加码,短视频+直播电商的营销模式成为618期间的主要输出. 以某美妆专场直播间为例,主播现场手 ...

  6. 项目完成小结:使用Blazor和gRPC开发大模型客户端

    前言 先介绍下这个项目. 最近我一直在探索大语言模型,根据不同场景训练了好几个模型,为了让用户测试使用,需要开发前端. 这时候,用 Gradio 搭建的前端是不太够的,虽说 GitHub 上也有一堆开 ...

  7. TreeMap运行错误

    Exception in thread "main" java.lang.ClassCastException: Day16_TreeMap.Star cannot be cast ...

  8. 懒人的百宝箱「GitHub 热点速览」

    本周 GitHub Trending 除了 lazydocker 之外,还有多个 lazy 项目上线,比如大家熟悉的 lazyvim,可见,这个世界对懒人还是很友好的.除此之外,主打一个密码免输入,绕 ...

  9. proxysql修改默认系统配置

    前言 proxysql在第一次启动后,配置就从sqlite db中加载了,而不是配置文件. 有时候我们需要修改proxysql的默认配置,其相关配置在main.global_variables表中,可 ...

  10. DateTime 相关的操作汇总【C# 基础】

    〇.前言 在日常开发中,日期值当然是不可或缺的,能够清晰的在脑海中梳理出最快捷的实现也非常重要,那么今天就来汇总一下. 一.C# 中的本机时间以及格式化 如何取当前(本机)时间?很简单,一句话解决: ...