【深度之眼】Pytorch框架班第五期-Week6【任务2】第一节:Batch Normalization

本文详细介绍了批标准化(BatchNormalization)的概念及其在深度学习中的应用。批标准化通过将输入数据标准化为0均值和1方差,解决了内部协变量转移问题,允许使用更大的学习率,加速模型收敛。它还简化了权重初始化,减少了对dropout和正则化的依赖。文章解释了BatchNormalization的计算方式,以及在不同维度上的实现,并讨论了其在训练和测试阶段的统计值计算。

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

Batch Normalization概念

批标准化

  • 批:一批数据,通常为mini-batch
  • 标准化:0均值,1方差

优点:
1、可以用更大的学习率,加速模型的收敛
2、可以不用精心设计权值初始化
3、可以不用dropout或者较小的dropout
4、可以不用L2或者较小的weight decay
5、可以不用LRN(local response normalization)

计算方式

在这里插入图片描述
affine transform 增强Capacity(容纳能力)
内部协变量转移
在这里插入图片描述

_BatchNorm

__init__(self, num_features, eps=1e-5, momentum=0.1, affine=True, track_running_stats=True)

nn.BatchNorm1d
nn.BatchNorm2d
nn.BatchNorm3d
参数:

  • num_features: 一个样本特征数量
  • eps:分母修正项
  • momentum: 指数加权平均估计当前mean/var
  • affine: 是否需要affine transform
  • track_running_stats: 是训练状态还是测试状态

主要属性:

在这里插入图片描述

  • running_mean: 均值
  • running_var: 方差
  • weight: affine transform 中的gamma
  • bias: affine transform 中的beta
    训练:均值和方差采用指数加权平均计算
    测试:当前统计值

running_mean = (1-momentum) * pre_running_mean + momentum * mean_t
running_var = (1-momentum) * pre_running_var + momentum * var_t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值