Embedding之padding_idx学习
文章目录
- 题目
- 解释
- 举例
- case1:padding_idx=None
- case2:padding_idx=0
- case3:padding_idx=3
- case4:padding_idx=3,将单词顺序变化
题目
padding_idx学习
解释
Embedding类
参数 | 含义 |
---|---|
padding_idx (int, optional) |
If specified, the entries at :attr:padding_idx do not contribute to the gradient; therefore, the embedding vector at :attr:padding_idx is not updated during training,
|
i.e. it remains as a fixed “pad”. For a newly constructed Embedding,the embedding vector at :attr:padding_idx
will default to all zeros,but can be updated to another value to be used as the padding vector. |
什么意思呢?
意思就是padding_idx默认为None,如果指定的话,则padding_idx对应的参数不会对梯度产生影响,因此在padding_idx处词嵌入向量在训练过程中不会被更新。
举例
# 原段落有有5个单词,分别为
# index : word
# 0 hello
# 1 world
# 2 morning
# 3 goodbye
# 4 sunshine
case1:padding_idx=None
#index=[0,1,2,3,4]分别代表上述单词
seq = torch.tensor([0,1,2,3,4])# 创建一个词嵌入模型embed,输入单词数为5,每个单词用3个向量表示
embed = nn.Embedding(5,3,padding_idx=None)word_embed = embed(seq)
print(f"默认情况下的padding_idx:\n{word_embed}")
case2:padding_idx=0
#index=[0,1,2,3,4]分别代表上述单词
seq = torch.tensor([0,1,2,3,4])# 创建一个词嵌入模型embed,输入单词数为5,每个单词用3个向量表示
embed = nn.Embedding(5,3,padding_idx=0)word_embed = embed(seq)
print(f"padding_idx=0:\n{word_embed}")
case3:padding_idx=3
#index=[0,1,2,3,4]分别代表上述单词
seq = torch.tensor([0,1,2,3,4])# 创建一个词嵌入模型embed,输入单词数为5,每个单词用3个向量表示
embed = nn.Embedding(5,3,padding_idx=3)word_embed = embed(seq)
print(f"padding_idx=0:\n{word_embed}")
结论:
从这里可以看出padding_idx的作用是使得对应单词的词向量表示为0,比如padding_idx=0,它是让hello代表的词向量表示为0
case4:padding_idx=3,将单词顺序变化
#index=[0,1,2,3,4]分别代表上述单词,将goodbye和sunshine位置调换
seq = torch.tensor([0,1,2,4,3])# 创建一个词嵌入模型embed,输入单词数为5,每个单词用3个向量表示
embed = nn.Embedding(5,3,padding_idx=3)word_embed = embed(seq)
print(f"padding_idx=3:\n{word_embed}")
由此更可以确凿是与单词的index有关,而不是与seq本身固有的index有关。
Embedding之padding_idx学习相关推荐
- 一文直击Graph Embedding图表示学习的原理及应用
导读:我们都知道在数据结构中,图是一种基础且常用的结构.现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等. 目前提到图算法一般指: 经典数据结构与算法层面的: ...
- nn.Embedding中padding_idx的理解
每个句子的长度并不一定是等长的, 这时候就需要对较短的句子进行padding, nn.Embedding中padding_idx是指定padding的索引值. #实例化词嵌入对象,序列进行paddin ...
- Word Embedding与Word2Vec学习
一.词嵌入背景 Embed这个词,英文的释义为, fix (an object) firmly and deeply in a surrounding mass, 也就是"嵌入"之 ...
- 点击率预测模型Embedding层的学习和训练
导读: 本文将简要介绍推荐模型的发展历史,现状,和下一步的研究趋势.并重点介绍针对embedding数据的模型训练及优化.主要包含以下几大部分内容: CTR预测模型(CTR Models) 连续值处理 ...
- Adapting Grad-CAM for Embedding Networks - 度量学习网络可视化方法(reid、人脸识别)
Adapting Grad-CAM for Embedding Networks TL;DR 基于 grad-cam 修改得到一种适配embedding网络的可视化方法,可以用于人脸识别.reid等任 ...
- 《Attributed Social Network Embedding》论文学习笔记
一.研究背景 本文提出了一种网络表示学习算法:将结构信息和属性信息同时输入深度神经网络,实现非线性特征抽象,相对传统的浅层神经网络语言模型,有较大性能提升.同时作者提出了离散属性信息的处理方式,是本文 ...
- js 中使用idx模块方便获取链条式的对象属性值
1. 背景 从一个js对象的属性值中的属性再次获得值,或者从集合中获得元素再获得属性值要写很多判断是否空的表达式,才能继续读取,否则就出现异常.这在开发过程很繁琐的事情,idx 模块就是来解决这个问题 ...
- 深度学习推荐系统中各类流行的Embedding方法
Embedding技术概览: 对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上) Graph Embedding简介 Word2Vec和 ...
- 深度学习推荐系统中各类流行的Embedding方法(下)
我的个人微信公众号: Microstrong 微信公众号ID: MicrostrongAI 微信公众号介绍: Microstrong(小强)同学主要研究机器学习.深度学习.推荐系统.自然语言处理.计算 ...
最新文章
- greenplum安装札记(待完善)
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
- wxWidgets:wxAppConsole类用法
- JVM用户自定义加载器实现步骤
- 华为交换机查看端口流量_华为交换机限速及流量统计配置
- linux/shell相关知识点
- 【专栏精选】网络封包神器protobuf简介
- html主要用于组织网页的,HTML网页基本组成概述
- where条件中等值连接使用双竖杠影响SQL性能
- VR/AR平台战略与实践(1)
- 为什么用JS取不到cookie的值?解决方法如下!
- mysql mgr监控_6. MySQL组复制(MGR)全解析 Part 6 监控MySQL组复制
- java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室
- 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
- elementui组件中,树形组件的使用
- mac上好用的文档转换器Doxillion Plus
- 用matlab计算卫星的瞬时位置,用MATLAB计算GPS卫星位置.PDF
- 软工网络15个人阅读作业2(201521123007谭燕)
- 引用程序集没有强名称的解决办法
- js根据后缀名判断文件的类型