Transformer(Attention is all you need)网络结构

news2024/11/13 12:08:58

Transformer(Attention is all you need)

Transformer结构

Transformer是一个从Encode到Decode的一个框架。Transformer的编码器和解码器是基于自注意力的模块叠加而成的,源(输入)序列和目标(输出)序列的嵌入(embedding)表示将加上位置编码(positional encoding),再分别输入到编码器和解码器中。

结构上完全相同但参数上并不完全相同。

在这里插入图片描述

论文中和教材中分别给出了Transformer的整体网络架构。由N个编码器部分和N个解码器部分依次堆叠而成的。

在这里插入图片描述

首先需要将输入经过嵌入层,经过词嵌入的处理。将获得的词向量输入到对应的编码器结构中去。

编码器结构

首先介绍Transformer架构的第一部分编码器结构。

在这里插入图片描述

输入的部分包括了两个部分Embedding 和 位置编码结合进行输入。(将嵌入的词向量与位置编码得到的向量进行相加获得最终的输入

位置编码的由来是因为与RNN网络一次只能输入一个数据相比,多头注意力机制可以并行化的处理多个单词数据,但忽略了彼此之间的位置关系

  • 编码器是由N = 6个完全相同的层(或者说是Transformer块)堆叠而成的。

  • 每一个层由两个部分进行组成分别为:

    • multi-headself-attention机制
    • 简单的位置完全连接的前馈网络
  • 对于每一个子层采用了残差连接和批量归一化处理

由此构成了编码器的部分

残差和LayNorm

在这里插入图片描述

根据上图中的结构Transformer中的残差结构的连接方式主要是:
将经过位置编码的输入词向量x与经过多头注意力机制的输出向量z相加进行残差连接构成一个残差结构。

  • 之后残差连接的结果经过LayNorm层来进行输出。(而不是使用BN测层

而对于BN层和LN层的区别不是特别了解:简单的理解是BN层对输入句子中的每一个单词做均值和方差,而LN层则是对整个句子最均值和方差。

最后将LN输出的值经过逐位的前馈神经网络,连接一个Normalize层就构成了一个Transformer块

解码器结构

对于解码器部分来说,解码器部分于编码器的部分的结构基本是类似的。

  • 同样的解码器是由N = 6个完全相同的层(或者说是Transformer块)堆叠而成的。

  • 对于每一个子层采用了残差连接和批量归一化处理

  • 不同的地方在于我们的解码器部分采用了类似NLP当中的序列到序列的结构,接受了编码器和下面的一个部分的输入条件。

在这里插入图片描述
在这里插入图片描述
掩盖的多头注意力机制 与编码器的结构存在不同的地方就在于在解码器中的第一个注意力层,是一个掩盖的多头注意力机制

掩盖的简单理解就是:对于输入的一个单词将当前单词和之后的单词做mask操作。个人的理解是为了防止多个序列数据的输入

掩盖的多头注意力机制经过一个Norm层的输出后,之后就到了图中的第二层交互层的位置。

交互层的输入除了下面的一个层的输入以外,还包括了之前的编码器的输入,编码器最后得到的输入就需要解码器中的每一层进行数据的交互
,数据的交互过程如下所示。

在这里插入图片描述
在这里插入图片描述

在交互层的的多头注意力的执行过程中,Encode层的输入生成的是K V矩阵,而Decode层得到的是Q矩阵

之后的结构和之前讲过的结构基本相同,多个解码器的结构在经过堆叠,加入编码器的连接之后就构成了Transormer网络的整体结构。

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

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

相关文章

牛客周赛 Round 59 F范德蒙卷积

思路:对于计数问题,考虑两个数对于答案的贡献,考虑 a i a_i ai​ 和 a j a_j aj​ 作为子序列中的两个对称位置,其在多少个字符串中出现过,显然,若 a i a_i ai​ 距离子序列字符串s的首位距离为 x, 那么 …

儿童孤独症康复学校:打破孤岛,关爱与成长

在世界的某个角落,有一群孩子,他们如同夜空中最亮的星,却往往因孤独症的屏障,而难以与周围的世界建立连接。这些孩子,如同被无形的岛屿环绕,渴望着被理解、被接纳。而正是在这样的背景下,星贝育…

CSS媒体查询

媒体查询介绍 例如,同一个网页,在电脑上显示和在手机上显示有可能不一样的,因为电脑的屏幕更大,显示的东西可能更多。 为了适应不同设备的屏幕大小,就要写多种样式,例如在电脑上,ipad上&#x…

攻防世界 ics-05

ics-05 隐藏的变量传参,php弱类型比较 只有设备维护中心可以点击进去 查看源码,发现有个隐藏的超链接变量传参 看到变量传参,有可能存在文件包含漏洞读取源码,这个站是php的站,所以可以使用php伪协议读取源码 index.p…

编译安装redis运行注册服务脚本sh install_server.sh时报错。

在编译安装redis的时候,运行注册服务脚本sh install_server.sh时,报错。 Welcome to the redis service installer This script will help you easily set up a running redis server This systems seems to use systemd. Please take a look at the pro…

Django-Python网站框架(MVT三层架构实现)

1 新建项目 2.选择Django 3.选择解释器 4.等待安装 5. 安装完成后,点击终端 6.输入 python manage.py startapp djangoWeb 7.等待生成djangoWeb<

辉煌ERP的销售收入为何有一部分归入其他收入里面

管家婆辉煌ERP15.0&#xff0c;客户查询经营情况利润表时发现&#xff0c;在其他业务收入里面有销售单收入&#xff0c;为什么这些销售单没有归入销售收入里面&#xff1f; 经查&#xff0c;发现这些销售单销售的都是原材料或者劳务服务商品&#xff0c;而商品属性为原材料和服…

Spring Boot3项目的常见通用整体架构

Spring Boot 3 项目的整体架构。 1. IDEA创建项目 <properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…

500W逆变器(一)

EG8015_24V_500W 这款逆变器是基于 EG8015 SPWM 专用芯片而设计的方案。其额定的输出功率为 500 瓦, 最大输出功率为 600 瓦&#xff0c;输出电压为 220V10%&#xff0c;输出频率为 50Hz0.1Hz&#xff0c;额定输出电流为 2.3 安培。 穿越机降落的时候不要垂直降落&#xff0c;要…

✨机器学习笔记(三)—— 多元线性回归、特征缩放、Scikit-Learn(未完待续)

Course1-Week2: https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Supervised%20Machine%20Learning%20Regression%20and%20Classification/week2机器学习笔记&#xff08;三&#xff09; 1️⃣多元线性回归及矢量化2️⃣特征缩放&#xff08;Featur…

Java进阶13讲__第12讲_2/2

线程安全问题 线程同步方案 线程池 线程通信 理论补充 1. 线程安全问题 1.1 举例说明 1.2 代码实现 package com.itheima.a_线程安全;/* 线程安全:多个线程同时修改同一个资源取钱案例小明和小红是一对夫妻&#xff0c;他们有一个共同的账户&#xff0c;余额是10万元如…

西门子PLC与HMI之间的时间同步工控小周

HMI 时间同步功能工控人加入PLC工业自动化精英社群 HMI 设备具有时间同步功能&#xff0c;利用 HMI 设备的该功能&#xff0c;可实现 PLC 和 HMI 之间的时间同步&#xff0c;进而实现多个 PLC 之间的时间同步。 HMI 设备时间同步的属性&#xff1a; 1.HMI 设备既可作为主站对…

WinCC 中对 VBS 进行单步执行调试

以前应该写过文章给各位展示如何在WinCC 中通过自身控件对脚本&#xff08;C、VBS&#xff09;进行脚本诊断和排错。但是也有用户反馈说在编写了一些相对复杂的脚本后&#xff0c;WinCC自身控件无法做到单步调试&#xff0c;也会影响脚本的诊断调试效率。如果能够对WinCC 中的脚…

系统编程-多路IO复用

多路IO复用 目录 多路IO复用 三种方法实现多路IO复用 一、 select 函数 - 使用 select 来进行多路 io 复用的步骤 1、创建文件描述符集合 2、对集合进行清空操作 3、使用函数将要进行监测的文件描述符添加到集合中 4、对集合中的文件描述符进行监测 5、对哪个文件描述…

【网络安全】shortscan+ffuf+代码审计实现LFI和SSRF

未经许可,不得转载。 文章目录 正文正文 目标网页example.com: 使用IIS-ShortName-Scanner工具进行扫描: https://github.com/irsdl/IIS-ShortName-Scanner扫描结果如下: 这意味着目标容易受到IIS短文件名泄露的攻击。 IIS短文件名泄露: https://github.com/irsdl/IIS-S…

OpenCV-轮廓检测

文章目录 一、简介1. 意义2.具体步骤 二、代码实现三、总结 一、简介 1. 意义 在OpenCV中&#xff0c;轮廓检测是图像处理中一个非常重要的环节&#xff0c;它允许我们识别图像中的形状。这个过程通常涉及几个步骤&#xff1a;读取图像、转换为灰度图、应用阈值处理&#xff…

stm32驱动开发与linux驱动的区别

stm32&#xff0c;gpio设置原理 下图&#xff0c;定义了gpio E的基地址&#xff0c;只要将这个地址强制转换成gpiotypedf的类型&#xff0c;解析时&#xff0c;结构体地址就会自增。这样就可以对不同gpio组&#xff0c;就像定义。 全部gpio定义&#xff0c;强制为结构体类型…

C语言深度剖析--不定期更新的第六弹

extern关键字–最会帽子的关键字 看下面的代码&#xff1a; test.h #pragma once #include <stdio.h> extern int x;//声明不要进行初始化&#xff0c;也就是赋值&#xff0c;因为声明不开辟空间test.c #define _CRT_SECURE_NO_WARNINGS 1 #include "test.h&quo…

ESP-NETIF L2 TAP接口——启明云端乐鑫代理商

ESP-NETIF L2 TAP 概述 ESP-NETIF L2 TAP 接口是 ESP-IDF 访问用户应用程序中的数据链路层&#xff08;OSI/ISO 中的 L2&#xff09;以进行帧接收和传输的机制。在嵌入式开发中&#xff0c;它通常用于实现非 IP 相关协议&#xff0c;如 PTP 和 Wake on LAN 等。 Tips : 目前…

影响画布微信小程序canvas及skyline和webview用户界面布局的关键流程

影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 目录 影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 一、微信小程序canvas开发流程 1.1、官方指南 1.2、客制化开发 第一步&#xff1a;在 WXML 中添加 canvas 组件 第二步&…