nn.Embedding使用

news2024/11/23 21:16:26

nn.Embedding是一种词嵌入的方式,跟one-hot相似但又不同,会生成低维稠密向量,但是初始是随机化的,需要根据模型训练时进行调节,若使用预训练词向量模型会比较好。

1. one-hot

one-hot是给定每个单词一个索引,然后根据输入文本是否含有这个单词来决定向量。

单词索引
we0
have1
are2
any3
all4
excellent5
people6

给定“We are all excellent people”,生成one-hot向量[1,0,1,0,1,1,1,0,0,…]


2. nn.Embedding

nn.Embedding参数设置:
torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False, _weight=None, device=None, dtype=None)

  • num_embeddings:字典的大小,如上表中字典大小事5000,就写5000。
  • embedding_dim:嵌入向量的维度,表示将单词编码为多少维的向量。
  • padding_idx:填充索引,意思是填充的索引,向量值默认为全0(可以自定义),相当于unknown,对未知的词编码为零向量。

其他参数并不常用,详情可以参考官网
Note, embedding只接受LongTensor类型的数据,且数据不能大于等于词典大小。

3. 应用

3.1 示例一

import torch
from torch import nn
embedding = nn.Embedding(10, 3)  #设置字典大小为10,维度为3
input = torch.LongTensor([[0,2,0,5]])  #设置为LongTensor
vector = embedding(input)
print(vector)

在这里插入图片描述

3.2 示例2

import torch
from torch import nn
embedding = nn.Embedding(10, 3, padding_idx=2)  #设置字典大小为10,维度为3
input = torch.LongTensor([[0,2,0,5]])
vector = embedding(input)
print(vector)
print("查看词典:",embedding.weight)  #weight可以查看全部词的向量

在这里插入图片描述
通过结果可以看到,词向量跟字典中的向量一一对应。

3.3 示例三

import torch
from torch import nn
padding_idx = 2
embedding = nn.Embedding(10, 3, padding_idx=2)  #设置字典大小为10,维度为3
input = torch.LongTensor([[0,2,0,5]])
vector = embedding(input)
with torch.no_grad():   
    embedding.weight[padding_idx] = torch.ones(3)  #设置填充向量
print(vector)
print("查看词典:",embedding.weight)  #weight可以查看全部词的向量

在这里插入图片描述

目前在自然语言中,主要使用词向量模型生成词向量,如word2vec,glove之类的静态词向量模型,BERT、RoBERT之类的动态词向量模型,或者使用超大模型bloom等,效果都比之前要好,具体使用那种模型根据具体情况而定。

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

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

相关文章

概论_第4章__方差D(X)的定义和性质

一 定义 通常以此公式来计算: 就是说: 方差 X的平方再求期望 —— X的期望的平方 即 括号里面的平方的期望减去期望的平方, 怎样求期望点击:概论_第4章__期望的定义和性质 注意: 方差不可能为负数。 2. …

如何快速拥有自己的虚拟形象?

元宇宙(Metaverse),是人类运用数字技术构建的,由现实世界映射或超越现实世界,可与现实世界交互的虚拟世界,具备新型社会体系的数字生活空间。 可见元宇宙第一步是创建专属虚拟形象,但创建3D虚拟…

Android入门第45天-手工发送一个BroadCast

简介 上一篇我们讲了简单的动态BroadCast,今天我们通过手工来发送一条BroadCast进一步来了解BroadCast。 在上一篇里我们使用BroadCast监听网络状态,今天我们要完成的是自己发一条自自己的消息来触发BroadCast Receiver。 设计 为了让Receiver收听到…

蓝牙耳机无延迟哪款好?适合打游戏的无线蓝牙耳机

手机可以说是人手必备,随声得还有蓝牙耳机,随着3.5耳机孔得消失,蓝牙耳机可以说是现在得主流,无论哪个年龄段都可以佩戴蓝牙耳机,日常听歌、追剧,和朋友玩游戏佩戴蓝牙耳机,已经成为一种生活方式…

mybatis06:MyBatis的多表操作

目录 1.一对一关系 2.一对多查询 3.多对多查询 4例题演示 ​5.知识小结 1.一对一关系 2.一对多查询 3.多对多查询 4例题演示 前置准备 对应的依赖 <dependencies><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId&…

外汇交易:流行图表指标盘点

您所学到的关于交易的一切都像一种工具&#xff0c;已被添加到外汇交易者的工具箱中。当您在正确的时间使用正确的工具时&#xff0c;您的图表指标工具将为您提供更好的机会做出正确的交易决策。 布林带 布林带用来衡量市场的波动性。它们的作用类似于迷你支撑位和阻力位。 布…

MES系统为何与工厂数字化转型联系紧密

随着数字化技术的发展&#xff0c;MES系统的定义也是在不断的变化。但是&#xff0c;计划调度、质量管理、生产执行以及数据采集&#xff0c;一直都是MES的核心功能。 工厂数字化改造&#xff0c;对于制造业来说并不是一场革命。很多工厂在十年前就实现了车间设备的联网&#…

EXCEL基础:数据有效性设置与从身份证号码提取出生日期、性别操作

如下所示&#xff0c;为某公司的人员信息表&#xff0c;以下操作均是基于该表格&#xff0c;声明&#xff1a;该表格来自网络&#xff01; 下面进行【数据有效性】的设置&#xff1a; 先选中区域&#xff0c;弹出【数据有效性】对话框&#xff0c;在【设置】里的【允许】里输入…

win11设置java环境变量

python环境变量比java简单很多&#xff0c;而java比较麻烦&#xff0c;下面这些步骤应该是一步不能少&#xff0c;必须新建两个而且移动到最上面 一、找到设置环境变量 只要是windows系统&#xff0c;他就长这样&#xff0c;需要找到这个页面 很多之前的文章都会说&#xff1…

[附源码]Node.js计算机毕业设计电影院订票系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

六、作用域,作用域链,预编译,闭包基础

六、作用域&#xff0c;作用域链&#xff0c;预编译&#xff0c;闭包基础 使用AO,GO说明作用域和作用域链 AO与函数有关&#xff0c;函数能创造出独立的空间&#xff0c;但是这句话不太对&#xff0c;接下来就是解释&#xff1a; 对象 每个对象都有属性和方法&#xff1a; …

MobileNetV2原理说明及实践落地

本文参考&#xff1a; 轻量级网络——MobileNetV2_Clichong的博客-CSDN博客_mobilenetv2 1、MobileNetV2介绍 MobileNetV1主要是提出了可分离卷积的概念&#xff0c;大大减少了模型的参数个数&#xff0c;从而缩小了计算量。但是在CenterNet算法中作为BackBone效果并不佳&…

【MATLAB教程案例59】使用matlab实现基于LSTM网络的数据分类预测功能与仿真分析

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.LSTM网络理论概述

荧光点击试剂ICG-N3, ICG-azide,根据具体的需求进行定制, 避免频繁的溶解和冻干,取用时注意干燥

【英文名称】 ICG-azide&#xff0c;ICG-N3 【结 构 式】 【CAS】N/A 【分子式】C48H56N6O4S 【分子量】813.07 【基团】叠氮基基团 【纯度】95% 【规格】1mg&#xff0c;5mg&#xff0c;10mg 【是否接受定制】根据具体的需求进行定制 【外观】 绿色固体&#xff08;具…

最小二乘问题,,而不是方法

最小二乘是一大类问题&#xff0c;而不是一个简单的方法 适用于&#xff1a;线性&#xff08;非线性&#xff09;方程组问题&#xff0c;如果观测带有噪声&#xff0c;我们需要建立最小二乘模型。如果噪声符合高斯分布&#xff0c;即最小二乘问题的解对应于原问题的最大似然解…

千万不要做“舔狗式”营销

不知道在网上做生意的你们是否经常陷入我下面说的这几种尴尬境地&#xff1a;每天都在推广引流&#xff0c;每天都在发广告&#xff0c;但转化率却低得可怜。粉丝质量普遍不行&#xff0c;不精准&#xff0c;好不容易来几个粉&#xff0c;不是白嫖党就是垃圾粉。两句话不对头&a…

C++实现红外Fir谱图文件转BMP图片文件

1、红外图谱文件 红外图谱文件由文件头和温度数据两部分组成,其中文件头 64 个字节,其余字节为温度数据。 如下如: 每个像素用两个字节表示温度(16 位有符号短整数),低字节在前,高字节在后,温度数据单位为 0.1℃,温度数据共 w h 2 字节。文件头定义 如下: 从文件…

Android Studio 开发环境搭建 配置

前言 上一次做 Android 开发还是在大三的 Android 课设项目上「 IPOD - 本地音乐播放器」 开发环境&#xff1a;JDK开发语言&#xff1a;Java开发工具&#xff1a;Android Studio 现在由于工作需要 「面向业务编程」&#xff0c;需要重拾 Android 开发&#xff0c;由于电脑已换…

mysql基础学习(2)-regexp正则表达式的学习

表示例 user 学习&#xff1a; ^匹配以^后面字符开头的所有数据&#xff0c;示例&#xff1a;^str&#xff0c;则匹配str开头的所以数据$匹配以$前面面字符结尾的所有数据&#xff0c;示例&#xff1a;str$&#xff0c;则匹配str结尾的所以数据. 匹配任何单个字符&…

嵌入式分享合集121

一、Matter协议 不是广告啊就是看见了就搬来了 也没用过啊~ 早在2019年底&#xff0c;中国就已成为全球最大的智能家居消费国&#xff0c;占全球智能家居消费市场份额的50%-60%&#xff1b;2021年&#xff0c;中国智能家居市场规模约为5880亿元&#xff0c;同比增长12.7%&…