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

nn.Embedding()说明

一般送给模型之前的输入数据,如果不考虑embedding,直接linear、gru、RNN、transformer这种模型,一般输入就是三维的 [batch_size, sql_len, embedding_dim];但如果中间要经过embedding层,那么在送给embedding之前,一定是 [batch_size, seq_len];



embedding类似于linear层,在内部定义了一个矩阵,这个矩阵的行是num_embeddings、列是embedding_dim;

embedding6=nn.Embedding(10,30)input5=torch.tensor([[1,4,5,9],[2,3,4,10]])

使用时根据数字,数字其实对应的就是索引,根据索引查对于的向量:1对应第2行,有30个数;经过embedding后原始的维度会升一维,由 [2, 4] 升到 [2, 4, 30];

padding_idx:表示指定的数字初始化为0,指定哪个数 其对应的向量初始化值就是0;


3.4.2 Embedding的代码实现:

nn.embedding核心就是创建一个矩阵:nn.Embedding(num_embeddings=xx, embedding_dim=xx),有多少单词需要进行词嵌入,它的行数 num_embeddings就是多少;一个单词的词嵌入维度是多少,它的列数 embedding_dim就是多少;下图是 embedding的解释:

首先nn.Embedding(vocabs, embedding_dim):vocabs:代表去重之后的词汇总量、embedding_dim:代表你想表示每个词的词向量维度,本质,一旦运行完即实例化完这个对象,它就会在神经网络中初始化一个矩阵,形状为:vocabs * embedding_dim;现在有一句 “我爱女的”,分成四个字即 vocabs=4,想把每个单词用三维向量表示 即 embedding_dim=3,实例化完这个对象就变成了图中 4行3列的矩阵,如何得知某个单词对应的向量,比如“我”?:一旦初始化之后旧不会再变了,“我”对应的是第 1行的向量、“爱”对应的是第 2行的向量,…;根据索引去查表:look up table查表,即一旦分词完,每个词的索引就固定了,然后根据索引找向量(每行);
代码中:seq_ids = tokenizer.texts_to_sequences(word_list)将文本序列转换成数字序列,为什么要转数字?:因为这个是索引,只有数字才能充当索引;所以nn.Embedding(num_embeddings=xx, embedding_dim=xx)中 num_embeddings是 int类型,即 id是整数;

Embedding本质就是一个矩阵,根据每个单词对应的数字(此数字即为索引),拿着索引查表,查到的那行向量就是这个单词对应的向量,一开始他是标准正太分布初始化分布的,随着模型的迭代会随着任务而更新,此为 nn.embedding;

http://www.cnnetsun.cn/news/2809029.html

相关文章:

  • 百度网盘秒传脚本:5步解决文件分享失效难题,永久保存珍贵资源
  • 抖音批量下载神器:从零开始掌握高效保存无水印视频的完整指南
  • Steam游戏自动破解终极指南:3个智能策略实现免Steam启动
  • 3步解锁iOS激活锁:AppleRa1n绕过工具完整实践指南
  • AKShare金融数据接口库:轻松获取财经数据的Python神器
  • Android Studio中文语言包:开发者体验革命与本地化架构新范式
  • 51单片机电机测速系统:从555 PWM驱动到光码盘测速全解析
  • 如何让10美元的普通鼠标在Mac上超越妙控板?终极Mac鼠标增强指南
  • 大模型自我反思机制:零延迟内生式质量校验
  • Windows 11 LTSC系统恢复微软商店的完整指南:3分钟告别应用荒
  • 英雄联盟回放播放器终极指南:如何轻松观看任何版本的回放
  • Cadence Sigrity安装配置与高速电路SI/PI仿真入门实战指南
  • STM8汇编编程实战:从CISC架构优势到嵌入式高效开发
  • 为什么你的CSDN AI数字营销专票申请被拒?4类常见驳回原因+2024年最新资质白名单
  • 3分钟快速上手:AI智能图像分层工具LayerDivider完整指南
  • STM32段码LCD驱动:从交流驱动原理到软件扫描实现
  • BetterNCM安装器:基于Rust的网易云音乐插件管理自动化解决方案
  • 图解电子技术入门:欧姆社丛书学习路径与实战指南
  • 如何用LosslessCut实现无损视频剪辑:新手5分钟掌握无损剪辑技巧
  • XXL-Job参数传错了怎么办?从一次线上故障复盘,聊聊参数传递的5个安全陷阱
  • Ubuntu密码重置全攻略:从GRUB恢复模式到Live CD终极救援
  • 工业级RAG实战:从PDF解析到结构化生成的端到端信噪比优化
  • GIS的5问
  • 5分钟掌握SharpKeys:Windows键盘重映射的终极解决方案
  • PADS 2005授权配置实战:FLEXlm机制解析与遗留EDA软件环境搭建
  • 无线通信中的EIRP与ERP:天线增益如何影响信号强度与合规性
  • 从“辛苦不赚钱”到“赚钱不辛苦”:工程师的价值跃迁与体系构建
  • NanaZip:Windows 11必备的现代化压缩工具完整指南
  • WRF模式输出变量太多看不懂?这份保姆级变量速查手册(含U/V/W/PH/T等核心变量详解)
  • Arduino串口控制LED入门:从原理到实践的全流程解析