pytorch复习笔记--nn.Embedding()的用法

news2024/12/25 0:56:55

目录

1--nn.Embedding()的用法

2--实例展示:

3--注意的问题


1--nn.Embedding()的用法

import torch.nn as nn

embedding = nn.Embedding(num_embeddings = 10, embedding_dim = 256)

nn.Embedding()产生一个权重矩阵weight,其shape为(num_embeddings, embedding_dim),表示生成num_embeddings个具有embedding_dim大小的嵌入向量;

输入input的形状shape为(batch_size, Seq_len),batch_size表示样本数(NLP句子数),Seq_len表示序列的长度(每个句子单词个数);

nn.Embedding(input)的输出output具有(batch_size,Seq_len,embedding_dim)的形状大小;

2--实例展示:

① 代码:

import torch
import torch.nn as nn

if __name__ == "__main__":
    input = torch.randint(low = 0, high = 5, size = (2, 9))
    input = torch.LongTensor(input)
    embedding = nn.Embedding(num_embeddings=6, embedding_dim = 3)
    output = embedding(input)
    print("input.shape:", input.shape) # (2, 9) 2个句子,9个单词
    print("embedding.shape:", embedding.weight.shape) # (6, 3) 
    print("output.shape", output.shape) # (2, 9, 3) 2个句子,9个单词,每个单词用一个3维的向量表示

    print("input:", input) 
    print("embedding:", embedding.weight) 
    print("output:", output)


    print("All Done !")

② 分析:

output = embedding(input) 的作用是将每个单词用一个 embedding_dim 大小的向量进行表示,所以对于一个(batch_size,Seq_len)的输入input来说,其输出 output 是一个(batch_size,Seq_len,embedding_dim)大小的 tensor。

在选择 embedding_dim 大小的向量进行表示时,是根据每个单词的数据进行选择;例如在下图中,第一个句子中两个单词的数据表示均为 3(红框表示),则对应的index均为 4,都要选择embedding.weight 中 index 为 4(绿框表示)的嵌入向量进行表示,所以在最终的 output 中两个单词的嵌入向量是相同的(黄框表示)。

3--注意的问题

① nn.Embedding() 的输入必须是 LongTensor 类型的张量;

② 在input输入中,数据大小(极差)不能超过 nn.Embedding() 初始化中 num_embeddings 的大小,即数据对应的 index 不能大于 num_embeddings;

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

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

相关文章

图解:Go Mutext

Mutex 可能处于两种不同的模式:正常模式和饥饿模式。 正常模式下获取Mutex 在正常模式下,新来的G会尝试自旋获取锁,如果自旋获取失败,则会按照FIFO的顺序排队获取锁。 当Mutex被释放,会唤醒等待队列中第一个等待者G&…

[附源码]计算机毕业设计求职招聘网站Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Spring框架的介绍、工厂设计模式以及Spring环境的搭建

spring崇尚:不重复的造轮子 二、工厂设计模式 工厂设计模式:工厂生产对象(配置文件properties反射) Spring创建对象的实现原理: 根据配置文件的id得到对应的class属性值,根据反射,通过类全路径创建对象; 通过配置文件,通过工厂设计模式,有反射动态创…

matlab knn方法快速实现,手把手教学

目录介绍话不多说,进入实战注意事项KNN算法的优势和劣势介绍 1968年,Cover和Hart提出K近邻算法。该算法既可以用于回归也可以用于分类,其用于分类时其输入为实例的特征向量,输出为实例的类别。假设给定一个训练数据集&#xff0c…

PsiQuantum宣布在容错量子计算架构方面取得新突破

(图片来源:网络) 12月2日,PsiQuantum宣布了一项突破性技术,该技术将使编译应用程序在运行时效率提高约50倍。可以更有效地实现容错量子计算。 该技术专门针对容错量子计算机的算法,而不是非容错的NISQ系统。…

linux倒序查看占用cpu或内存最多的进程

一、获取当前系统占用CPU最高的前10个进程 命令:ps aux|head -1;ps aux|sort -rn -k3|head -10 该命令组合由2条独立的命令组成: ps aux|head -1:这一句是为了获取标题(USER PID %CPU %MEN VSZ RSS TTY STAT START TIME COMMAND…

儿童学生护眼台灯哪个牌子好?双十二儿童护眼台灯精选

我国儿童以及青少年的近视人数迅速增加,主要是不注意用眼时间,不良好的照明光线,拥有一个明亮舒适的光线环境,能大大减少近视概率,推荐合适的儿童护眼台灯给大家。 TOP1:南卡护眼台灯L1 推荐指数&#xf…

每天一个面试题:ThreadLocal底层原理和实现Demo(12.6.2022)

ThreadLocal底层原理和实现Demo每天一个面试题:ThreadLocal实现ThreadLocal的DemoThreadLocal底层原理为什么ThreadLocalMap的key设计为弱引用今天开始一个新专栏:每天一个面试题系列 也没有拿到令人心动的offer,看来自己学习方式和能力还是差…

霸榜!这本《程序员如何向架构师转型》在Github已持续置顶两月

前言 企业架构在过去十年中取得了长足的进步。随着越来越多新技术出现,充分利用这些因素来将企业架构创建得更好十分重要。通过将新技术集成到企业架构中,即使在困难时期,也能取得丰硕的成果。现代企业架构师的 5 个特征: 1. IT…

PyQt利用QScrollArea+QGridLayout制作一个滑动的Grid布局(QT Designer)

目录前言制作ui文件推送结语前言 有需求需要做一个滑动的Grid布局结构,网上找了很多的文章都是介绍直接用代码去生成的,没有看到用QT Designer做好后再怎么处理,这里研究了一下,以作记录和参考 制作ui文件 新建一个MainWindow 我…

本周推荐 | 基于 canvas 实现 H5 丝滑看图体验

推荐语:随着机器算力及性能的提升,基于原生Web体系的富交互体验也可以媲美原生,本文作者通过Canvas Web手势从零实现了大图浏览的交互效果,并在体验上不输Native,是一次不错的技术尝试,欢迎阅读。——大淘…

家庭宽带相关知识及工具

1.FTTH、FTTR、FTTB FTTH,光纤到户,需要用到光猫,目前主流,最高到千兆(1G),局域网内为网线(超五类、六类等)连接。 FTTR,光纤到房间,或者说是光纤到终端,全光网,最高到万…

技术分享| 音视频与微信小程序互通实践

随着网络架构的变迁、媒体技术发展、音视频场景迭代&#xff0c;基于流媒体的技术也是推陈出新。WebRTC渐渐的成为了音视频互动场景的主流&#xff0c;而微信在6.5.21版本通过小程序开放了实时音视频能力&#xff0c;开发者们可以使用组件 < live-pusher > 实现基于 RTMP…

计讯物联数字乡村解决方案全力助推三农信息化建设

​2020年&#xff0c;中央网信办等七部门联合印发《关于开展国家数字乡村试点工作的通知》。《通知》提出&#xff0c;做好数字乡村发展整体规划设计&#xff0c;统筹推进乡村的新型基础设施、数字经济、数字农业农村、农村科技创新、乡村数字治理、信息惠民服务等建设和发展。…

类的加载过程(类的生命周期)详解

类的加载过程&#xff08;类的生命周期&#xff09;详解 1. 概述 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义&#xff0c;引用数据类型则需要进行类的加载。 按照Java虚拟机规范&#xff0c;从class文件到加载到内存中的类&#xff0c;到…

python全局和局部变量以及引用和装饰器

学习笔记 bilibili千峰python global关键字的添加 只有不可变的类型才需要添加global可变的类型不需要添加global不可变类型&#xff1a;当改变变量的值时候&#xff0c;地址发生了改变 类型&#xff1a;int&#xff0c;str&#xff0c;float&#xff0c;bool&#xff0c;tup…

[Spring Boot 6]企业级开发

本节内容主要就几个常用的模块进行解读&#xff0c;在众多企业级开发中常常用得到。 例如邮件发送这一功能其实非常常见&#xff0c;在一般的网站设计中会有对注册邮件的激活功能&#xff0c;此时就需要用到这个功能了&#xff0c;一般来说激活邮件需要设置UUID 来进行验证&…

【Python入门】Python入门必备思维导图,有方向的学习才是最实在的方法

前言 halo&#xff0c;包子们下午好 这篇文章主要是跟大家聊聊我们学习Python该怎么去学习 小编个人认为&#xff0c;学习Python一定要有一个好的学习方向&#xff0c;这样才知道自己该往什么方向去学习 今天小编主要给大家准备了我们学习Python的必备14张思维导图 赶快收藏起…

【SSM整合】SpringMVC + Spring + Mybatis整合详细教程

前言 本文为 SpringMVC Spring Mybatis整合教程 相关详细介绍&#xff0c;从数据库数据准备、相关依赖包添加、创建项目基本结构和配置框架&#xff0c;到Mybatis层的编写、Spring层的编写、SpringMVC层的编写&#xff0c;再到前端页面编写等&#xff0c;最后进行运行与测试&…

新生报到小程序毕业设计,新生报到管理系统设计与实现,毕设作品参考

功能清单 【后台管理员功能】 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 录入资讯&#xff1a;录入资讯标题、内容等信息 管理资讯&#xff1a;查看已录入资讯列表&#xff0c;支持删除和修改 学校…