深度学习处理文本(14)

news2025/4/13 7:49:41

使用Transformer进行序列到序列学习

正是序列到序列学习让Transformer真正大放异彩。与RNN相比,神经注意力使Transformer模型能够处理更长、更复杂的序列。要将英语翻译成西班牙语,你不会一个单词一个单词地阅读英语句子,将其含义保存在记忆中,然后再一个单词一个单词地生成西班牙语句子。这种方法可能适用于只有5个单词的句子,但不太可能适用于一整个段落。相反,你可能会在源句子与正在翻译的译文之间来回切换,并在写下译文时关注源句子中的单词。你可以利用神经注意力和Transformer来实现这一方法。你已经熟悉了Transformer编码器,对于输入序列中的每个词元,它使用自注意力来生成上下文感知的表示。在序列到序列Transformer中,Transformer编码器当然承担编码器的作用,读取源序列并生成编码后的表示。但与之前的RNN编码器不同,Transformer编码器会将编码后的表示保存为序列格式,即由上下文感知的嵌入向量组成的序列。

模型的后半部分是Transformer解码器。与RNN解码器一样,它读取目标序列中第0~N个词元来尝试预测第N+1个词元。重要的是,在这样做的同时,它还使用神经注意力来找出,在编码后的源句子中,哪些词元与它目前尝试预测的目标词元最密切相关——这可能与人类译员所做的没什么不同。回想一下查询−键−值模型:在Transformer解码器中,目标序列即为注意力的“查询”​,指引模型密切关注源序列的不同部分(源序列同时担任键和值)​。

Transformer解码器

完整的序列到序列Transformer如图11-14所示。观察解码器的内部结构,你会发现它与Transformer编码器非常相似,只不过额外插入了一个注意力块,插入位置在作用于目标序列的自注意力块与最后的密集层块之间。

在这里插入图片描述

我们来实现Transformer解码器。与TransformerEncoder一样,我们需要将Layer子类化。所有运算都在call()方法中进行,在此之前,我们先来定义类的构造函数,其中包含我们所需要的层,如代码清单11-33所示。

代码清单11-33TransformerDecoder

class TransformerDecoder(layers.Layer):
    def __init__(self, embed_dim, dense_dim, num_heads, **kwargs):
        super().__init__(**kwargs)
        self.embed_dim = embed_dim
        self.dense_dim = dense_dim
        self.num_heads = num_heads
        self.attention_1 = layers.MultiHeadAttention(
            num_heads=num_heads, key_dim=embed_dim)
        self.attention_2 = layers.MultiHeadAttention(
            num_heads=num_heads, key_dim=embed_dim)
        self.dense_proj = keras.Sequential(
            [layers.Dense(dense_dim, activation="relu"),
             layers.Dense(embed_dim),]
        )
        self.layernorm_1 = layers.LayerNormalization()
        self.layernorm_2 = layers.LayerNormalization()
        self.layernorm_3 = layers.LayerNormalization()
        self.supports_masking = True----这一属性可以确保该层将输入掩码传递给输出。Keras中的掩码是可选项。如果一个层没有实现compute_mask()并且没有暴露这个supports_masking属性,那么向该层传入掩码则会报错

    def get_config(self):
        config = super().get_config()
        config.update({
   
            "embed_dim"

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

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

相关文章

核心案例 | 湖南汽车工程职业大学无人机操控与编队技术实验室

核心案例 | 湖南汽车工程职业大学无人机操控与编队技术实验室 为满足当今无人机行业应用需求,推动无人机技术的教育与实践深度融合,北京卓翼智能科技有限公司旗下品牌飞思实验室与湖南汽车工程职业大学强强联手,共同建设无人机操控与编队技术…

Oracle 查看后台正在执行的 SQL 语句

在 Oracle 数据库中,要查看后台正在执行的 SQL 语句,可以通过查询动态性能视图(Dynamic Performance Views)或使用监控工具来实现。 1. 查询动态性能视图 (1) 查看当前活跃会话及其执行的 SQL 使用 v$session 和 v$sql 视图关联…

SpringBoot整合MinIO快速入门:实现分布式文件存储与管理

文章目录 一、MinIO是什么?为什么选择它?1.1 什么是MinIO?1.2 核心优势 二、本地快速搭建MinIO服务2.1 Docker一键部署2.2 访问管理界面2.3 创建存储桶(Bucket) 三、SpringBoot集成MinIO客户端3.1 添加Maven依赖3.2 配…

我的NISP二级之路-03

目录 一.ISMS 二.IP 三.http 四.防火墙 五.文件 解析 解析 六.攻击 解析 解析 七.风险管理工程 八.信息系统安全保护等级 九.我国信息安全保障 一.ISMS 1.文档体系建设是信息安全管理体系(ISMS)建设的直接体现,下列说法不正确的是: A&#…

Oracle 表空间高水位收缩全攻略

1. 概述 本文档是针对某个特定用户表空间收缩的文档,实际操作要结合生产库具体情况。主要包括以下几个流程: 收集当前数据库相关信息降低数据库表高水位线Resize 收缩数据文件 具体细节详见以下章节。 2. 时间规划 操作类型预估时间实际时间数据库信…

ESModule和CommonJS在Node中的区别

ESModule console.log(require);//>errorconsole.log(module);//>errorconsole.log(exports);//>errorconsole.log(__filename);//>errorconsole.log(__dirname);//>error全部报错commonjs console.log(require);console.log(module);console.log(exports);co…

力扣刷题-热题100题-第34题(c++、python)

23. 合并 K 个升序链表 - 力扣(LeetCode)https://leetcode.cn/problems/merge-k-sorted-lists/?envTypestudy-plan-v2&envIdtop-100-liked 顺序合并 合并两个有序链表作为子函数,创建一个空链表,然后对含有多个链表的数组进…

原生SSE实现AI智能问答+Vue3前端打字机流效果

实现流程: 1.用户点击按钮从右侧展开抽屉(drawer),打开模拟对话框 2.用户输入问题,点击提问按钮,创建一个SSE实例请求后端数据,由于SSE是单向流,所以每提一个问题都需要先把之前的实…

LLC工作模态详解

1以半桥LLC谐振变换器为例,主开关Q1、Q2构成半桥结构,其驱动信号为固定占空比50%的互补信号,并且在上下桥臂之间应有死区时间。 谐振电感Ls、谐振电感Cs和变压器励磁电感Lm共同构成谐振槽路,具有两个谐振频率: 谐振电…

线代第三课:n阶行列式

引言 行标取自然排列 不同行不同列的3个元素相乘 列标取排列的所有可能 列标排列的逆序数的奇偶性决定符号,- n阶行列式 第一种:按行展开 (1) 行标取自然排列 (2) 列标取排列的所有可能 (PS:可以理解为随意取) (3) 从…

机器学习的一百个概念(10)假阳性率

前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索: 知识库创建人机器学习@Shockang机器学习数学基础@Shocka…

C++ Socket优化实战:提升网络应用的性能与效率

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle…

STM32单片机入门学习——第30节: [9-6] FlyMcu串口下载STLINK Utility

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.09 STM32开发板学习——第30节: [9-6] FlyMcu串口下载&STLINK Utility 前言开发…

亮相CMEF,美的医疗全维度打造智慧医疗新生态

当下,医疗科技革命的浪潮正汹涌而来,AI技术在中国医疗器械领域迅猛发展,释放出巨大的潜力。 4月8日,在第91届中国国际医疗器械博览会(CMEF)上,2025美的医疗年度新品发布暨中国脊梁守护计划启动…

数据库视图讲解(view)

一、为什么需要视图 二、视图的讲解 三、总结 一、为什么需要视图 视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。 比如,针对一个公司的销售人员,我们只想给他看部分数据&#xff0c…

TQTT_KU5P开发板教程---文件的烧写与程序固化

文档功能介绍 本文档所描述的为文件的烧写固化,利用spi芯片将程序固化带芯片上,可以让开发板在重新上电时也可以跑程序。我们所使用的芯片型号为mt25qu256-spi-x1_x2_x4.本次实验采用的在led_shift项目的基础上将流水灯程序固化到flash芯片上&#xff0c…

进度管理__制订进度计划_资源平衡和资源平滑

本文讲解的资源平衡与资源平滑,是制订进度计划的工具与技术的第3项: 资源优化。 1. 资源平衡 资源平衡是为了在资源需求与资源供给之间取得平等, 根据资源制约因素对开始日期和完成日期进行调整的一种技术。 如果共享资源或关键资源只在特定…

【ISP】ISP pipeline(AI)

ISP Pipeline 全流程概览 ISP(Image Signal Processing,图像信号处理)流程通常从原始 Bayer 数据出发,经过一系列模块处理,逐步完成图像校正和增强,最终生成用于显示或编码的标准图像。常见处理模块包括&a…

RVOS-2.基于NS16550a ,为os添加终端交互功能。

2.1 实验目的 为os添加uart功能,通过串口实现开发板与PC交互。 2.1 硬件信息 QEMU虚拟SoC含有 虚拟NS16550A设备 。 不同的地址线组合(A2、A1、A0)对应的读写模式和寄存器如下所示: 2.2 NS16550a 的初始化 线路控制寄存器&#…

软件学报 区块链论文 截止2025年4月 录用汇总 附pdf下载

截止 2025年4月 软件学报 2024年 区块链论文 录用汇总 附pdf下载 1 Title: 基于多父链辅助工作量证明共识机制的后量子区块链系统 Authors: Key words: 区块链;后量子密码;共识机制;辅助工作量证明 Abstract: 随着量子计算机的发展,对于以传统椭圆曲线数字签名为基石的公…