BatchNorm和LayerNorm 简单解释

对于一维的数据,使用BatchNorm1d和LayerNorm,简单的理解,BatchNorm是对所有样本的每一个维度取均值,均方差进行计算。LayerNorm是对每一个样本的所有维度取均值,均方差进行计算。

import torch
import torch.nn as nn

if __name__ == '__main__':

    input = torch.tensor([[6,6,6,6],
                          [6,6,8,4],
                          [6,8,2.,6]])
    norm1 = nn.BatchNorm1d(input.shape[1])
    norm2 = nn.LayerNorm(input.shape[1])
    print(norm1(input))
    print(norm2(input))

结果如下:

tensor([[ 0.0000, -0.7071,  0.2673,  0.7071],
        [ 0.0000, -0.7071,  1.0690, -1.4142],
        [ 0.0000,  1.4142, -1.3363,  0.7071]],
       grad_fn=<NativeBatchNormBackward>)
tensor([[ 0.0000e+00,  0.0000e+00,  0.0000e+00,  0.0000e+00],
        [-1.1921e-07, -1.1921e-07,  1.4142e+00, -1.4142e+00],
        [ 2.2942e-01,  1.1471e+00, -1.6059e+00,  2.2942e-01]],
       grad_fn=<NativeLayerNormBackward>)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值