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

人工智能学习:Transformer结构(文本嵌入及其位置编码器)

一、输入部分介绍

输入部分包含:

  • 编码器源文本嵌入层及其位置编码器

  • 解码器目标文本嵌入层及其位置编码器

在transformer的encoder和decoder的输入层中,使用了Positional Encoding,使得最终的输入满足:

1739846954844

        这里,input_embedding是通过常规embedding层,将每一个词的向量维度从vocab_size映射到d_model,由于是相加关系,自然而然地,这里的positional_encoding也是一个d_model维度的向量。(在原论文里,d_model=512)

二、文本嵌入层

        文本嵌入层(Text Embedding Layer)是深度学习模型中将文本(通常是单词或句子)转换为固定大小的向量表示的一个关键层。它的目标是将每个文本单元(如单词或子词)映射到一个高维空间中,以便模型能够更好地捕捉到词汇的语义信息和语法信息。

        无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示, 希望在这样的高维空间捕捉词汇间的关系。常见的词嵌入方法包括:Word2Vec, GloVe, FastText, 以及可学习的embedding层。

nn.Embedding演示:

Python

embedding = nn.Embedding(num_embeddings=10, embedding_dim=3)
input = torch.LongTensor([[1, 2, 4, 5], [4, 3, 2, 9]])
print(embedding(input))

# padding_idx: 指定用于填充的索引。如果设置为0,则索引为0的输入将始终映射到一个全零向量,并且在反向传播时不会更新该嵌入。
# 全零向量:padding_idx 指定的索引(如0)会被映射到一个全零向量。
# 不更新梯度:在训练过程中,padding_idx 对应的嵌入向量不会被更新。
# 用途:常用于处理变长序列的填充部分,避免填充部分对模型训练产生影响。
embedding = nn.Embedding(num_embeddings=10, embedding_dim=3, padding_idx=0)
input = torch.LongTensor([[0, 2, 0, 5]])
print(embedding(input))

输出结果:

Python

tensor([[[-1.0378,  0.0594,  2.6601],
         [ 1.0423, -0.4094,  0.3436],
         [-1.8989,  1.3664, -0.3701],
         [ 0.3930,  0.9908,  1.5700]],

        [[-1.8989,  1.3664, -0.3701],
         [ 0.3479, -0.2118, -0.1244],
         [ 1.0423, -0.4094,  0.3436],
         [ 0.4161,  0.4799, -0.4094]]], grad_fn=<EmbeddingBackward0>)
tensor([[[ 0.0000,  0.0000,  0.0000],
         [-0.3378,  1.1013, -1.7552],
         [ 0.0000,  0.0000,  0.0000],
         [ 0.9153,  0.3548,  2.1857]]], grad_fn=<EmbeddingBackward0>)

文本嵌入层的代码实现:

Python

# 导入必备的工具包
import torch
# 预定义的网络层torch.nn, 工具开发者已经帮助我们开发好的一些常用层,
# 比如,卷积层, lstm层, embedding层等, 不需要我们再重新造轮子.
import torch.nn as nn
# 数学计算工具包
import math


# Embeddings类 实现思路分析
# 1 init函数 (self, d_model, vocab)
# 设置类属性 定义词嵌入层 self.lut层
# 2 forward(x)函数
# self.lut(x) * math.sqrt(self.d_model)

文章转载自:

http://JWTSjEE0.nmkfy.cn
http://7IQRRXdM.nmkfy.cn
http://LeoFcEYJ.nmkfy.cn
http://IhZRbfxw.nmkfy.cn
http://j3FkTPV2.nmkfy.cn
http://WAWn2ndp.nmkfy.cn
http://I3QIxz93.nmkfy.cn
http://6YauMBU6.nmkfy.cn
http://sFUWWBMh.nmkfy.cn
http://W6ZRKolH.nmkfy.cn
http://TYmg9J35.nmkfy.cn
http://VgEGj58E.nmkfy.cn
http://nODrghXN.nmkfy.cn
http://dcCZdtnX.nmkfy.cn
http://SOGV5Itx.nmkfy.cn
http://qOjzwLA4.nmkfy.cn
http://1u8qwLoU.nmkfy.cn
http://ZcFHRwjG.nmkfy.cn
http://92OEtcye.nmkfy.cn
http://FjjCgu4E.nmkfy.cn
http://6tlwSf97.nmkfy.cn
http://6qKQLQ9P.nmkfy.cn
http://uJkLxcvk.nmkfy.cn
http://pmnuNNwq.nmkfy.cn
http://gWRgbBCd.nmkfy.cn
http://vuMXjT7g.nmkfy.cn
http://o7Z0k2ro.nmkfy.cn
http://UuW24j1N.nmkfy.cn
http://mM55nLe3.nmkfy.cn
http://HtG3RFiF.nmkfy.cn
http://www.dtcms.com/a/373144.html

相关文章:

  • 计算机视觉——光流法
  • VMware 如何创建链接克隆虚拟机
  • Excel处理控件Aspose.Cells教程:使用 Python 将 Pandas DataFrame 转换为 Excel
  • 【回眸】Tessy 基础操作指南
  • 更智能的零售终端设备管理:合规、安全与高效
  • TCP/IP、HTTP 和 HTTPS简介
  • UNBIASED WATERMARK:大语言模型的无偏差水印
  • Android Studio处理异常报错:Cause connect timed out
  • 基于哈塞特独立性表态的AI量化研究:美联储政策独立性的多维验证
  • 人工智能-python-深度学习-经典神经网络AlexNet
  • SpringBoot集成电科金仓数据库(上):环境搭建与基础配置
  • AR 巡检与普通巡检有哪些区别,有哪些优势|阿法龙XR云平台
  • Web与Nginx网站服务二
  • [硬件电路-166]:Multisim - SPICE与Verilog语言的区别
  • 计算机毕业设计 基于Python+Django的医疗数据分析系统
  • 鸿蒙:绑定半模态页面(bindSheet)
  • 001-003 产品经理-ML应用构建-ML应用范围
  • Node中使用 fs 和 node:fs 的区别与选择
  • SYN 包在什么场景下会被丢弃
  • R 语言科研绘图 --- 其他绘图-汇总2
  • Aider AI Coding 多策略编码系统深度分析报告
  • 胜券POS:打造智能移动终端,让零售智慧运营触手可及
  • tensorflow.js 使用场景
  • 【技术教程】如何将ONLYOFFICE文档集成到使用Spring Boot框架编写的Java Web应用程序中
  • 安卓学习 之 用户登录界面的简单实现
  • 3 提示词(Prompt):大模型的交互语言
  • 微信小程序体验版,当打开调试模式正常访问,关闭之后无法访问
  • 虚拟机ubuntu22.04没有网
  • 【WorkManager】无法在 Direct Boot 模式下初始化
  • Prompt Engineering to Context Engineering