PyTorch笔记25--Batch Normalization

Batch Normalization概念

Batch Normalization:批标准化
:一批数据,通常为mini-batch
标准化:0均值,1方差
优点:
        1. 可以更大学习率,加速模型收敛
        2. 可以不用精心设计权值初始化
        3. 可以不用dropout或较小的dropout
        4. 可以不用L2或者较小的weight decay
        5. 可以不用LRN(local response normalization)

计算方式:

PyTorch的Batch Normalization 1d/2d/3d实现

_BatchNorm

        • nn.BatchNorm1d

        • nn.BatchNorm2d

        • nn.BatchNorm3d

__init__(
    self, 
    num_features, #一个样本特征数量(最重要)
    eps=1e-5, #分母修正项
    momentum=0.1, #指数加权平均估计当前mean/var
    affine=True, #是否需要affine transform
    track_running_stats=True#是训练状态,还是测试状态
)

主要属性:

        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

训练:均值和方差采用指数加权平均计算

测试:当前统计值

参考文献:《 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值