BatchNorm和LayerNorm 简单解释

本文介绍了在一维数据中使用BatchNorm1d和LayerNorm进行数据归一化的区别。BatchNorm1d对所有样本的每个维度计算均值和方差,而LayerNorm则针对每个样本的所有维度计算。通过示例代码展示了两种方法的应用及结果。

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

对于一维的数据,使用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>)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值