当前位置: 首页 > news >正文

医院建设官方网站必要性郑州网站建设企业推荐

医院建设官方网站必要性,郑州网站建设企业推荐,网站漂浮物怎么做,2网站免费建站平时我们在编写神经网络时,经常会用到layernorm这个函数来加快网络的收敛速度。那layernorm到底在哪个维度上进行归一化的呢? 一、问题描述 首先借用知乎上的一张图,原文写的也非常好,大家有空可以去阅读一下,链接放…

      平时我们在编写神经网络时,经常会用到layernorm这个函数来加快网络的收敛速度。那layernorm到底在哪个维度上进行归一化的呢? 

一、问题描述

    首先借用知乎上的一张图,原文写的也非常好,大家有空可以去阅读一下,链接放在参考文献里了。如左图所示,假设现在输入的维度是(bs,seq_len, embedding),其中bs代表batch_size, seq_len代表序列长度 ,embedding表示嵌入大小。

    那在layernorm时,我们是对(seq_len, embedding)这个矩阵取均值和方差(上图);还是只对embedding这个维度取均值和方差呢(下图)?前者会得到bs个均值和方差,而后者会得到bs * seq_len 个均值和方差。下面我们进行编程验证。

二、编程实现

import torchbatch_size, seq_size, dim = 2, 3, 4
embedding = torch.randn(batch_size, seq_size, dim)layer_norm = torch.nn.LayerNorm(dim, elementwise_affine = False)
print("用pytorch的layer_norm所得结果\n", layer_norm(embedding))print("自己编写layer_norm所得结果")
eps: float = 0.00001
mean = torch.mean(embedding[:, :, :], dim=(-1), keepdim=True)
var = torch.square(embedding[:, :, :] - mean).mean(dim=(-1), keepdim=True)print("mean: ", mean.shape)
print("y_custom: ", (embedding[:, :, :] - mean) / torch.sqrt(var + eps))

结果:

用pytorch的layer_norm所得结果tensor([[[ 0.7475, -1.7061,  0.6676,  0.2910],[ 0.1144, -0.6476,  1.5753, -1.0421],[-1.0278, -0.7498,  0.2559,  1.5218]],[[-1.0527, -0.8723,  1.3354,  0.5895],[-0.6403, -1.1399,  1.4842,  0.2961],[ 0.7352, -0.8236, -1.1342,  1.2226]]])
自己编写layer_norm所得结果
mean:  torch.Size([2, 3, 1])
y_custom:  tensor([[[ 0.7475, -1.7061,  0.6676,  0.2910],[ 0.1144, -0.6476,  1.5753, -1.0421],[-1.0278, -0.7498,  0.2559,  1.5218]],[[-1.0527, -0.8723,  1.3354,  0.5895],[-0.6403, -1.1399,  1.4842,  0.2961],[ 0.7352, -0.8236, -1.1342,  1.2226]]])

结果的相等的。可以看到,我们在取均值和方差时,是对最后一个维度取的。所以我们会得到 (N,C)个均值与方差。假设二是正确的。 

而实际上这种实现方法和Instance Norm是相同的

from torch.nn import InstanceNorm2d
instance_norm = InstanceNorm2d(3, affine=False)
x = torch.randn(2, 3, 4)
output = instance_norm(embedding.reshape(2,3,4,1)) #InstanceNorm2D需要(N,C,H,W)的shape作为输入
print(output.reshape(2,3,4))layer_norm = torch.nn.LayerNorm(4, elementwise_affine = False)
print(layer_norm(x))

结果:

tensor([[[ 0.7475, -1.7061,  0.6676,  0.2910],[ 0.1144, -0.6476,  1.5753, -1.0421],[-1.0278, -0.7498,  0.2559,  1.5218]],[[-1.0527, -0.8723,  1.3354,  0.5895],[-0.6403, -1.1399,  1.4842,  0.2961],[ 0.7352, -0.8236, -1.1342,  1.2226]]])
tensor([[[ 0.1293, -1.0034,  1.5760, -0.7018],[-1.3981, -0.4828,  1.0876,  0.7933],[-1.7034,  0.8545,  0.4876,  0.3612]],[[-1.4750,  1.2212, -0.2607,  0.5144],[ 0.7017, -0.8350,  1.2502, -1.1169],[-1.7273,  0.6965,  0.5147,  0.5161]]])

三、参考文献

(45 封私信 / 80 条消息) 为什么Transformer要用LayerNorm? - 知乎 (zhihu.com)https://www.zhihu.com/question/487766088/answer/2644783144

http://www.dtcms.com/a/574340.html

相关文章:

  • 基于LQR和PID控制算法的一级倒立摆MATLAB实现
  • 临沂企业网站十大免费行情软件网站下载
  • 从Java后端到Python大模型:我的学习转型与规划
  • 电商创客网站建设方案高端网站案例
  • 苏州做公司网站艺术字体转换器
  • 手机网站建设请示浙江立鹏建设有限公司网站
  • 延吉网站网站建设wordpress 树状目录结构
  • 高端定制站开发立网站系
  • 本溪市城乡住房建设厅网站郑州建设局官网
  • 发那科机器人在氩弧焊中搭配节气装置的优势
  • 开发者实践:机器人梯控的 API 对接与 MQTT 边缘调度解耦
  • 永康市网站建设制作网站模板超市
  • UE5.6 玻璃材质——Lumen
  • UE5 AI行为树源码解析(Composites)
  • 做婚庆网站安徽元鼎建设工程网站
  • 建设银行注册网站首页php网站服务器搭建
  • 织梦网站如何转百度小程序同步网络营销策略和方法
  • UE5 C++ Slate 画曲线
  • 【机器学习15】强化学习入门、Q-Learning、贝尔曼方程
  • 解释seo网站推广北京十大科技公司
  • 基于电鱼 AI 工控机的塔吊与升降机安全监测方案——实时采集传感器数据,AI智能判断异常并报警
  • 如何看一个网站用什么程序做的南开做网站
  • 京东云双11活动-云产品特惠热卖中
  • 企业网站如何seowordpress touch
  • 怎样进行网站板块建设支付宝网站登录入口
  • Harbor 私有镜像仓库安装教程
  • 批发/贸易企业数字化转型:PHP开发的B2B订货系统
  • ACMMM2025 |TGSI+SATL:不改模型架构也能提升预测性能,破解几何结构评估与建模难题!
  • 【笔记】Windows系统安装SAM-2(Segment Anything Model 2)
  • 宁波网站制作报价主题设置wordpress