许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  深度学习中各种Normalization(归一化)对比及代码实现

深度学习中各种Normalization(归一化)对比及代码实现

阅读数 8
点赞 0
article_banner

本文介绍深度学习中常用的四种Normalization方法,Batch Normalization、Layer Normalization、Instance Normalization和Group Normalization。主要结合 代码分析 其计算过程

总结

对于输入大小为NxCxHxW的特征

  • BN对所有样本的每个通道进行归一化 [均值形状为C]
  • LN对每个样本进行归一化 [均值形状为N]
  • IN对每个样本的每个通道进行归一化 [均值形状为NC]
  • GN对每个样本的部分通道进行归一化(先将通道分为G组) [均值形状为NG]
    在这里插入图片描述

BatchNormalization

BN对NHW进行归一化,保留C维度,对较小的batch_size效果不好
在这里插入图片描述

def BatchNormalization(x):
    # x: [NxCxHxW]
    mean, std = mean_std(x, dim=[0,2,3], keepdim=True)
    x = (x - mean) / std
    return x
# track_running_stats=False,求当前 batch 真实平均值和标准差,而不是更新全局平均值和标准差
# affine=False, 只做归一化,不乘以 gamma 加 beta(通过训练才能确定)
# num_features 为 feature map 的 channel 数目
bn = nn.BatchNorm2d(num_features=20, affine=False, track_running_stats=False)

LayerNormalization

LN对CHW进行归一化,保留N维度
在这里插入图片描述

def LayerNormalization(x):
    # x: [NxCxHxW]
    mean, std = mean_std(x, dim=[1,2,3], keepdim=True)
    x = (x - mean) / std
    return x
# elementwise_affine=Fal
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空