Transformer中的layer norm(包含代码解释)

在transformer中存在add&norm操作,add操作很简单,就是把注意力矩阵和原来的矩阵相加,也就是残差链接,可以有效减少梯度消失。如下图所示,为layer norm的解释图,可以看出layer norm是针对一个token来做的归一化操作。
在这里插入图片描述

具体的实现,我们来看下面这段代码,我们的目标就是使用torch中的LN去计算一个EM,然后我们再自己手动计算一个EM,看看LN到底是不是针对token来求的平均,其中注释我已经写的很清楚了,仔细看注释就会理解了!!!

import torch# 1.使用torch的layer norm来进行操作,然后看一下ln后的矩阵是什么样子
# 创建了一个2*3*4的随机矩阵
batch_size, seq_size, dim = 2, 3, 4
embedding = torch.randn(batch_size, seq_size, dim)
print("embedding:", embedding)
# 创建一个LayerNorm层
layer_norm = torch.nn.LayerNorm(dim, elementwise_affine=False)
# 进行LayerNorm操作
print("layer_norm: ", layer_norm(embedding))# 2.自己手动来对最后一个维度进行计算,如果和上面的结果一样,说明layernorm的计算和我们的计算是一样的
eps: float = 0.00001# 计算了embedding张量在最后一个维度上的均值,并将结果存储在变量mean中。
# dim=(-1):这个参数指定了要在哪个维度上计算均值。在这里,-1表示最后一个维度,所以这个函数会计算embedding张量在最后一个维度上的均值。
mean = torch.mean(embedding[:, :, :], dim=(-1), keepdim=True)
print("mean:", mean)# 计算了embedding张量在最后一个维度上的方差,并将结果存储在变量var中
var = torch.square(embedding[:, :, :] - mean).mean(dim=(-1), keepdim=True)
print("var", var)# 对嵌入张量embedding进行标准化(或称为归一化)的操作
# torch.sqrt(var + eps),这部分代码首先计算了方差张量var的平方根,然后加上一个非常小的常数eps(通常用于防止除以零的错误)。这个操作是缩放的一部分,它根据数据的方差来调整数据的大小
print("y_custom: ", (embedding[:, :, :] - mean) / torch.sqrt(var + eps))

通过上面的代码,我们可以看到下面的打印内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过输出上的对比我们发现了,使用torch来LN后的EM和我们手动来对Token进行LN的数值一样,说明了LN就是对Token来进行归一会操作的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口自动化测试总结,接口鉴权+加密与解密+数据库操作/断言...

前言 1、接口鉴权的多种方式 1)后端接口鉴权常用方法 cookie: 携带身份信息请求认证 之后的每次请求都携带cookie信息,cookie记录在请求头中 token: 携带身份信息请求认证 之后的每次请求都携带token认证信息 可能记录在请求头…

Java随记

Java java保留两位小数 1、使用String.format()方法: public static void stringFormatdecimalFormatKeepTwoDecimalPlaces(){double number 3.1415926;String result String.format("%.2f", number);System.out.println(result);}输出:3…

Large Language Models areVisual Reasoning Coordinators

目录 一、论文速读 1.1 摘要 1.2 论文概要总结 二、论文精度 2.1 论文试图解决什么问题? 2.2 论文中提到的解决方案之关键是什么? 2.3 用于定量评估的数据集是什么?代码有没有开源? 2.4 这篇论文到底有什么贡献&#xff1…

第十五章 : Spring Boot 集成MyBatis 多种方式

第十五章 : Spring Boot 集成MyBatis 方式 前言 本章知识重点:Spring Boot集成MyBatis的两种方式:注解方式和配置文件集成方式,重点推荐一款脚手架工具-mybatis-plus3以及如何在Idea中集成与应用;大大提高了开发效率,代码更加规范和简洁。 Spring Boot数据访问概述 在…

振弦采集仪助力岩土工程质量控制

振弦采集仪助力岩土工程质量控制 随着工程建设规模越来越大,建筑结构的安全性和稳定性越来越成为人们所关注的焦点。岩土工程在工程建设中占据着非常重要的地位,岩土工程质量控制更是至关重要。而振弦采集仪作为一种先进的检测设备,正得到越…

[PyTorch][chapter 5][李宏毅深度学习][Classification]

前言: 这章节主要讲解常用的分类器原理.分类主要是要找到一个映射函数 比如垃圾邮件分类 : c0, 垃圾邮件 c1 正常邮件 主要应用场景: 垃圾邮件分类,手写数字识别,金融信用评估. 这里面简单了解一下,很少用 目录: 1: …

还记得当初自己为什么选择计算机?

还记得当初自己为什么选择计算机? 当初你问我为什么选择计算机,我笑着回答:“因为我梦想成为神奇的码农!我想像编织魔法一样编写程序,创造出炫酷的虚拟世界!”谁知道,我刚入门的那天&#xff0…

离线数仓构建案例一

数据采集 日志数据(文件)到Kafka 自己写个程序模拟一些用户的行为数据,这些数据存在一个文件夹中。 接着使用flume监控采集这些文件,然后发送给kafka中待消费。 1、flume采集配置文件 监控文件将数据发给kafka的flume配置文件…

STM32——定时器Timer

定时器工作原理 软件定时 缺点:不精确、占用 CPU 资源 void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 4;j 129;k 119;do{do{while (--k);} while (--j);} while (--i); } 使用精准的时基,通过硬件的方式,实现定时功…

Linux---访问NFS存储及自动挂载

本章主要介绍NFS客户端的使用 创建NFS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用 访问NFS存储 前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统, 所实现的是 Linux 和 Linux 之间的共…

TypeScript中泛型函数

一.概览 此前,对泛型有了整体的概览,详见TypeScript中的泛型,后面的系列会详细地介绍TypeScript的泛型。此篇文章主要介绍泛型函数 二. 泛型函数 泛型是类型不明确的数据类型,在定义时,接收泛指的数据类型&#xff…

易点易动:颠覆固定资产用量管理,实现高效精准的企业固定资产管理

固定资产用量管理是企业日常运营中不可或缺的一环。然而,传统的人工管理方式面临着时间成本高、数据不准确、难以监控等问题。为了解决这些挑战,易点易动应运而生,它是一款先进的资产管理系统,能够帮助企业实现高效精准的固定资产…

【Java项目管理工具】Maven

Maven 文章目录 Maven一、简介二、安装和配置三、GAVP四、IDEA Maven Java Web工程五、插件、命令、生命周期六、依赖配置七、构建配置八、依赖传递与依赖冲突九、Maven工程继承和聚合关系9.1 工程继承关系9.2 工程聚合关系 十、Maven私服10.1 Nexus下载安装10.2 Nexus上的各种…

案例054:基于微信的追星小程序

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

linux的权限741

741权限 在 Linux 中,文件和目录的权限由三组权限来定义,分别是所有者(Owner)、所属组(Group)和其他用户(Others)。每一组权限又分为读(Read)、写&#xff0…

c++函数模板STL详解

函数模板 函数模板语法 所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。 凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数&#xf…

Java安全之Commons Collections5

CC5分析 import org.apache.commons.collections.Transformer; import org.apache.commons.collections.functors.ChainedTransformer; import org.apache.commons.collections.functors.ConstantTransformer; import org.apache.commons.collections.functors.InvokerTransfo…

基于ssm绿色农产品推广应用网站论文

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

Cloudways和SiteGround哪个更好?

当提及WordPress托管服务提供商时,人们常常会拿Cloudways和SiteGround做比较。Cloudways作为备受欢迎的品牌,而SiteGround则是业界的老牌巨头。它们之间主要的区别在于服务范围。SiteGround提供广泛的托管服务,包括Web托管、WordPress托管、W…

Android 11.0 屏蔽保护听力对话框

Android 11.0 屏蔽保护听力对话框 最近收到客户反馈提到当设备音量调高到一定程度时会弹出提示保护听力的对话框,影响了操作使用,需要将弹出的提示保护听力对话框屏蔽掉,具体修改参照如下: /vendor/mediatek/proprietary/packag…