nn.LayerNorm的参数:

参考:
1、pytorch LayerNorm参数详解,计算过程
2、nn.LayerNorm的具体实现方法(通过公式复现)

normalized_shape

如果传入整数,比如4,则被看做只有一个整数的list,此时LayerNorm会对输入的最后一维进行归一化,这个int值需要和输入的最后一维一样大。

假设此时输入的数据维度是[3, 4],则对3个长度为4的向量求均值方差,得到3个均值和3个方差,分别对这3行进行归一化(每一行的4个数字都是均值为0,方差为1);LayerNorm中的weight和bias也分别包含4个数字,重复使用3次,对每一行进行仿射变换(仿射变换即乘以weight中对应的数字后,然后加bias中对应的数字),并会在反向传播时得到学习。
如果输入的是个list或者torch.Size,比如[3, 4]或torch.Size([3, 4]),则会对网络最后的两维进行归一化,且要求输入数据的最后两维尺寸也是[3, 4]。

假设此时输入的数据维度也是[3, 4],首先对这12个数字求均值和方差,然后归一化这个12个数字;weight和bias也分别包含12个数字,分别对12个归一化后的数字进行仿射变换(仿射变换即乘以weight中对应的数字后,然后加bias中对应的数字),并会在反向传播时得到学习。
假设此时输入的数据维度是[N, 3, 4],则对着N个[3,4]做和上述一样的操作,只是此时做仿射变换时,weight和bias被重复用了N次。
假设此时输入的数据维度是[N, T, 3, 4],也是一样的,维度可以更多。
注意:显然LayerNorm中weight和bias的shape就是传入的normalized_shape。

eps

归一化时加在分母上防止除零。

elementwise_affine

如果设为False,则LayerNorm层不含有任何可学习参数。

如果设为True(默认是True)则会包含可学习参数weight和bias,用于仿射变换,即对输入数据归一化到均值0方差1后,乘以weight,即bias。

torch.nn.LayerNorm(normalized_shape: Union[int, List[int], torch.Size],eps: float = 1e-05,elementwise_affine: bool = True)
import torch
a = torch.tensor([[1,2,4,1],[6,3,2,4],[2,4,6,1]]).float()
print(a)

输出

tensor([[1., 2., 4., 1.],[6., 3., 2., 4.],[2., 4., 6., 1.]])

1.只考虑最低维:每个维各自按公式计算即可,不和其他维度掺和

print(nn.LayerNorm([4])(a))
tensor([[-0.8165,  0.0000,  1.6330, -0.8165],[ 1.5213, -0.5071, -1.1832,  0.1690],[-0.6509,  0.3906,  1.4321, -1.1717]],grad_fn=<NativeLayerNormBackward>)

2.考虑最低的2个维度:计算最低两维的12个元素的方差均值

a = torch.tensor([[1,2,4,1],[6,3,2,4],[2,4,6,1]]).float()
print(a)
print(nn.LayerNorm([3,4])(a))
tensor([[1., 2., 4., 1.],[6., 3., 2., 4.],[2., 4., 6., 1.]])
tensor([[-1.1547, -0.5773,  0.5773, -1.1547],[ 1.7320,  0.0000, -0.5773,  0.5773],[-0.5773,  0.5773,  1.7320, -1.1547]],grad_fn=<NativeLayerNormBackward>)

nn.LayerNorm的参数相关推荐

  1. 深度学习笔记016:BatchNorm批量归一化+nn.LayerNorm暂记

    实现 pytorch 实现 Layernorm的官方文档 import torch import torch.nn as nn# NLP Example batch, sentence_length, ...

  2. torch.nn.MaxPool1d各参数分析

    torch.nn.MaxPool1d各参数小白文分析 一.官方定义和参数解释 1.1 初步解释各个参数 二.用代码测试各个参数的影响 2.1 kernel_size.stride和ceil_mode画 ...

  3. pytorch中的nn.LSTM模块参数详解

    直接去官网查看相关信息挺好的,但是为什么有的时候进不去 官网:https://pytorch.org/docs/stable/nn.html#torch.nn.LSTM 使用示例,在使用中解释参数 单 ...

  4. 反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释

    文章目录 反卷积的作用 卷积中padding的几个概念 No Padding Half(Same) Padding Full Padding 反卷积 反卷积中的Padding参数 反卷积的stride ...

  5. nn.softmax的参数使用和数据使用

    nn.Softmax ,dim=0 对于二维数组的dim=0时,将每列的每个元素和这一列的自然指数之和进行比, import torch.nn as nn import numpy as np imp ...

  6. BERT用的LayerNorm可能不是你认为的那个Layer Norm?

    ©作者 | 王坤泽 单位 | 悉尼大学 研究方向 | NLP 有关 Batch norm 和 Layer norm 的比较可以算上是算法领域的八股文了,为什么 BERT 不用 batch norm 而 ...

  7. Pytorch —— BN、LN、IN、GN

    1.为什么要Normalization? 深度学习中存在Internal Covariate Shift(ICS):数据尺度/分布异常,导致训练困难: 在权值初始化部分介绍了深度神经网络训练过程中的数 ...

  8. Pytorch归一化方法讲解与实战:BatchNormalization、LayerNormalization、nn.BatchNorm1d和LayerNorm()和F.normalize()

    文章目录 LayerNormalization BatchNormalization F.normalize 这些Normalization的作用都是让数据保持一个比较稳定的分布,从而加速收敛.Bat ...

  9. pytorch_lesson13.4 Dead ReLU Problem成因分析+通过调整学习率来缓解+Relu特性理解+nn.Sequential建模方式以及参数自定义方法

    提示:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 前言 一.Dead ReLU Problem成因分析 1.Dead ReLU ...

最新文章

  1. 去除MyEclipse频繁弹出的Update Progress窗口
  2. 如何判断离散数组 是递增趋势_如何用切线技术判断市场趋势?
  3. mysql主从复制gtid_详解MySQL主从复制实战 - 基于GTID的复制
  4. mongodb输错命令后不能删除问题
  5. linux连接教程视频,[原创]linux视频教程之连接
  6. 手机端本地图片或者拍照的上传功能
  7. 修改HUDSON_HOME
  8. Java学习代码合集
  9. Win10自带浏览器MicroEdge无法打开网页---解决办法
  10. 云渲染服务器快吗?云渲染具体怎么用??
  11. java旅游管理项目描述,201Java基于SpringBoot框架的旅游管理系统
  12. 设置页面默认为繁体字
  13. java.sql.SQLException: is unrecognized or represents more than one time zone. You must configure
  14. CREO-三维建模技巧
  15. Systemd and sysemctl
  16. [读论文]-Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译
  17. 星战 java_星战知识之多少 -- 暗黑原力西斯(Sith)篇
  18. ios-block-对象与对象之间的解偶合
  19. 实现暂停一秒输出的效果_HID控制器与海康威视人脸识别amp;测温门禁一体机实现联动的改造方法...
  20. 夺命雷公狗---node.js---2node.js中的npm的常用命令

热门文章

  1. [easyui] 在iframe中操作父窗口的组件
  2. 计算机网络体系小知识
  3. Java多线程之synchronized(二)
  4. Apache常用配置项
  5. Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)...
  6. HDU 1253-大逃亡(裸-DBFS)
  7. 图的根节点-数据结构作业。。
  8. Windows 7可以体验IE10了
  9. 奥运年08/07/19我正式加入博客园,开始.net的新征程^-^
  10. android 可以搜索到热点 连接时显示未找到热点_魔兽世界地精经典语录:时间就是金钱!8266互联网时间显示器教程...