什么是二维批量归一化操作,如何使用BatchNorm2d层

news/2026/1/22 21:33:55/文章来源:https://www.cnblogs.com/ggg-327931457/p/19519076

什么是二维批量归一化操作,如何使用BatchNorm2d层

在模型训练前,一般会对输入数据进行归一化处理,将数据中不同尺度的特征,转换为相同的尺度。

image

从而提升模型的泛化能力,加速模型训练,并防止梯度爆炸等问题。

对于神经网络,当数据经过网络的各层时,数据的分布可能发生变化,这种情况被称为“内部协变量偏移”。

image

所以即使对输入数据进行了标准化,但在较深层的网络中,这种标准化效果也可能丢失。

为了应对内部协变量偏移的问题,可以在神经网络的各个layer之间添加批量归一化,即:Batch Norm层。

image

通过BN层,网络的每一层都可以独立的进行归一化,从而保证训练的稳定。

 

1.二维批量归一化BatchNorm2D

二维批量归一化,BatchNorm2D方法,适用于对图像数据进行的归一化操作。

image

经常应用在卷积神经网络中,我们一般会将BN层放到池化层之后,激活函数之前。

BatchNorm2D在计算时,会针对每个通道进行。

image

例如,图中表示了10个5*5大小的图像,每张图有R、G、B,三个通道。

每个通道会独立进行批量归一化操作。

具体来说,10个3通道,5*5大小的图像,会表示为10*3*5*5的四维张量。

image

那么R、G、B通道,分别会包括10*5*5=250个像素,每个通道的250个像素,独立的进行归一化计算。

计算包含了三个步骤:

image

第1步:需要计算m个输入数据xi的平均值μ和方差σ的平方。例如,在上例中m就等于250。

第2步:基于计算出的平均值和方差,对每个数据xi都进行归一化操作。

image

式中的ϵ是一个非常小的正数,用来保证数值的稳定性,防止计算过程中出现分母为零的情况。

第3步:对归一化后的数据xi进行缩放和平移。

image

缩放就是使xi乘以γ,平移就是加上β。

这样就得到了Batch Norm层的输出BN(xi)。

实际上,γ和β就是BatchNorm2D层中的可训练参数。

image

β是平移因子,用于将归一化后的数据平移。

这两个参数的引入,使得批量归一化层不仅仅是简单地对数据进行规范化,还可以适应性地调整数据分布,以更好地满足网络的训练。

下面我们以2个样本,1个灰色通道,3*3大小的特征图为例,说明批量归一化的计算过程。

image

设置2个3*3的矩阵,代表这两个特征图。

第1个矩阵包括了1到9,第2个矩阵包括10到18。

第1步:要计算出这18个数字的均值和方差:

平均值就是1+2+3+...+18,再除以18,等于9.5。方差是1到18,分别减平均值9.5,然后平方再除以18,结果是26.9。

image

第2步:进行归一化操作:

第1个样本的归一化,令矩阵中的每个数,都减去平均值9.5。

image

接着计算出标准差,将9个数字除以标准差,得到第1个样本的归一化结果。

image

同理,计算第2个样本的归一化结果,包括减平均值和除以标准差两个步骤。

image

第3步是进行缩放和平移:

这里随意设置缩放和平移的参数,γ=1.5,β=2。

第1个样本计算如下,将归一化后的结果,乘以1.5再加2,得到缩放和平移后的结果。

image

第2个样本也是同样的道理。

 

2.nn.BatchNorm2d的使用

下面我们来看如何使用Pytorch中的nn.BatchNorm2d接口。

image

该接口用于定义一个BatchNorm2d层。

样例代码如下:

image

nn.BatchNorm2d的输入,是一个4维的张量,这个输入与卷积层conv2d的输入是一致的。

输入张量的4个维度,分别是批量数batch_size,通道数channels,特征图的高height和宽width。

例如,定义输入数据x,它是10*3*5*5的张量,代表了10个样本。每个样本都是R、G、B,3个通道的彩色图像,每个图像的大小是5*5的。

接着使用nn.BatchNorm2d,定义一个bn层。

需要指定bn层的参数,输入特征数num_features=3,其对应输入张量x中的通道数3。

其中每个通道都会独立的进行批量归一化计算,3个通道就会计算3次批量归一化。

我们可以打印出bn层的参数,由于特征数为3,因此对应了3个缩放w和3个偏置b参数。

默认情况下,缩放w的值是1,偏置b的值是0。

最后,将x传入bn层,可以计算出结果y:

image

y的尺寸和x是一样的,都是10*3*5*5。

以上便是二维批量归一化的整个过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【个人随笔】我的第一篇博客

博客名:gild注册时间:2019 年 7 月 12 日今天:2026 年 1 月 22 日距离第一次登录,已过去 2385 天。一、一个沉寂的名字 “gild” 这个名字,取自英文动词 to gild —— “镀金”,意为给某物表面覆上一层金,使其看…

人群仿真软件:Pathfinder_(5).人群行为设置

人群行为设置 在使用Pathfinder进行人群仿真时,人群行为的设置是关键的一环。人群行为设置决定了仿真过程中个体的行为模式、决策过程以及相互之间的互动。本节将详细介绍如何在Pathfinder中设置人群行为,包括基本行为参数、行为策略、行为触发条件以及…

人群仿真软件:Pathfinder_(6).出口与路径定义

出口与路径定义 在人群仿真软件中,定义出口和路径是非常关键的步骤。这些定义不仅决定了人员的疏散方向,还直接影响了仿真结果的准确性和可靠性。本节将详细介绍如何在Pathfinder中定义出口和路径,包括路径网络的构建、出口属性的设置以及如何…

人群仿真软件:Pathfinder_(4).环境建模与场景创建

环境建模与场景创建 在人群仿真软件中,环境建模与场景创建是至关重要的步骤。这一部分将详细介绍如何在Pathfinder中创建和配置仿真环境,包括几何建模、场景设置、材料属性以及动态障碍物的处理。通过这些内容,您将能够掌握如何创建复杂的仿真…

SaaS、PaaS、IaaS?

什么,是 SaaS、PaaS、IaaS ?

全网最全MBA必备AI论文工具TOP9:开题报告文献综述全解析

全网最全MBA必备AI论文工具TOP9:开题报告文献综述全解析 2026年MBA论文写作工具测评:为何需要这份榜单? 随着人工智能技术的不断进步,AI论文工具在学术研究中的应用日益广泛。对于MBA学生而言,撰写开题报告、文献综述…

测试失败堆成山?用机器学习快速定位根本原因,研发效率翻倍!

做研发/QA的你,是不是经常被CI流水线里的红色测试警告搞得头大?赶着重构 deadline,却要花大半天逐个排查:这失败是真的代码bug?还是测试用例本身不稳定?抑或是环境波动导致的误报?随着应用越来越…

北京InfoComm China二十周年:二十年成就亚洲极具影响力的专业视听行业盛会

(北京,2026年1月22日)二十年来,北京InfoComm China始终以专业、权威的平台定位,推动中国专业视听(Pro-AV)行业实现全球化发展与拓展国际版图。通过长期汇聚全球专业视听领域的制造商、解决方案提供商、IT系统集成商及各…

靠口碑翻身的作品!董子健导演首作,观众看完直呼走不出来!

《我的朋友安德烈》上映后,好评一波接一波,口碑持续发酵。导演董子健第一次拍电影,选择扎扎实实地回归到情感本身,用一个横跨多年的友情故事,精准地戳中了大家心里关于陪伴、理解和成长的那根弦,好多观众称…

【2026年-03期】Collaborative evolution between AI and humans

这是一幅关于 AI 与人类协作进化的逻辑全景图,它梳理了从 AI 技术迭代到人类能力重塑,再到二者形成新协作模式的完整逻辑链条。AI 演进与人类能力的底层逻辑AI 演进的双轮驱动AI 演化速度:从 GPT-3 → GPT-4 → GPT-5,模型能力不断…

PCA与K-means聚类结合的语音识别算法 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

《P1939 矩阵加速(数列)》

题目描述已知一个数列 a,它满足:ax​{1ax−1​ax−3​​x∈{1,2,3}x≥4​求 a 数列的第 n 项对 1097 取余的值。输入格式第一行一个整数 T,表示询问个数。以下 T 行,每行一个正整数 n。输出格式每行输出一个非负整数表示答案。输入…

cdn哪家好

在数字化时代,网站、APP等在线业务的稳定性与安全性直接决定用户体验与企业收益。而SCDN(Secure Content Delivery Network,安全内容分发网络)作为融合“内容加速”与“安全防护”的关键基础设施,其专业性直接影响…

使用 Python 脚本自动化管理 Docker 容器:启动、修改密码、删除及系统资源监控

在日常开发和运维中,我们经常需要对 Docker 容器进行批量操作,比如启动容器、重置 root 密码、删除无用容器等。手动执行命令效率低且容易出错。本文将通过 Python 脚本实现以下功能: 启动指定名称的容器修改容器内 root 用户密码安全删除容…

从DEM到等高线:手撕矢量与栅格两种地形表达

深入解析等高线地形图的矢量与栅格两种生成原理,并通过 C++ 代码从零实现 DEM 到等高线的完整流程,揭示 GIS 地形表达的核心逻辑。本文节选自新书《GIS基础原理与技术实践》第6章。很多人会用 gdal_contour 一键生成…

智表ZCELL产品V3.5 版发布,新增行列选中操作等功能

智表ZCELL产品V3.5 版发布,新增行列选中操作等功能,欢迎大家体验使用。 本次版本(V3.5)更新内容如下:1.新增行列头光标自定义样式功能。 2.新增点击行列头选中整行整列功能。 3.新增滑动鼠标选中多行多列功能。 4…

自定义广播数据实现网络冲突自检中的问题

通过自定义协议广播发送数据实现网络冲突自检时,相同IP的设备无法互相收到彼此发送的广播数据 原因:网络协议栈过滤了来自同IP的广播数据(但可以收到自己发送的广播数据,原因待确认) 解决方法:通过原始套接字在协…

深入解析:量化血流动力学新时代:以数据驱动重构临床决策的精准与高效

深入解析:量化血流动力学新时代:以数据驱动重构临床决策的精准与高效pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

整数、浮点数的内存中存储

引言两种数据在C语言中都十分的重要,很有必要都掌握清楚。一、整数以我们常见的数字进制来说,生活中普遍为十进制的数字,遇十进一,但是计算机由于其底层逻辑的影响,采取了二进制的方式存储数据。常用的编译器还会采取十…

AlexNet 迁移学习实战:CIFAR-10 图像分类实验 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …