批归一化 及 torch.nn.BatchNorm2d 函数详解

批归一化(Batch Normalization)用于减少内部协变量偏移,加速训练并提高模型稳定性。BN层计算每个维度的平均值和方差,通过公式实现归一化。在测试阶段,可通过训练期间的统计值或实时测试数据调整均值和方差。torch.nn.BatchNorm2d是PyTorch中实现批归一化的模块,包括num_features、eps、momentum、affine和track_running_stats等参数,控制归一化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预备知识

什么是batch?      batch是整个训练集中的一部分,由于训练集往往过大不能一次性全部输入到网络中,所以需要分批次地输送

                              所以每一批就是一个batch(批)

什么是Normalization?  Normalization翻译是归一化,归一化的引入是为了减少internal covariatie shift现象,其具体表现是在训                                        练深层网络的过程中,前面层参数的变化会影响后面每层的参数分布,导致了训练时只能选用较低的学                                          习速率以及小心谨慎的参数初始化。

                                      而Batch Normalization层(BN)的引入允许我们使用更高的学习率以及不用太担心参数初始化的问题。

Batch Normalization的具体过程:

对于输入的一个batch数据,先计算出每个维度的平均值和方差,对于一个2*2的灰度图像来说,那么就要计算一个batch内每个像素通道的平均值和方差(共计算四次,得到四个平均值和方差)。

然后通过以下公式得到归一化之后的batch:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值