[pytorch] LN, BN深入分析

本文深入探讨了LayerNorm和BatchNorm在深度学习模型中的作用,特别是LayerNorm如何通过计算每个分层的均值和方差来标准化输入数据,以及在处理变异性时与BatchNorm的区别。通过示例展示了LayerNorm的实现过程,包括计算标准化后的特征向量。

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

LayerNorm深入分析

均值和方差是各自的, 但是映射是分层的

ln = nn.LayerNorm(6)
x = torch.randn(1, 1, 6)
print(ln.state_dict())
print(x)
print(ln(x))

std, mean = torch.std_mean(x, dim=2, keepdim=True, unbiased=False)
x = (x - mean) / (std + 1e-5)
print(x)

输出

OrderedDict([('weight', tensor([1., 1., 1., 1., 1., 1.])), ('bias', tensor([0., 0., 0., 0., 0., 0.]))])
tensor([[[ 6.0541e-01,  5.5038e-04, -3.6288e-01, -7.0546e-01,  2.9306e-01,
          -6.5057e-01]]])
tensor([[[ 1.5400,  0.2847, -0.4695, -1.1805,  0.8918, -1.0666]]],
       grad_fn=<NativeLayerNormBackward0>)
tensor([[[ 1.5401,  0.2847, -0.4695, -1.1805,  0.8918, -1.0666]]])

BatchNorm深入分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放飞自我的Coder

你的鼓励很棒棒哦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值