文章目录

  • 题目
  • 解释
  • 举例
    • 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学习相关推荐

  1. 一文直击Graph Embedding图表示学习的原理及应用

    导读:我们都知道在数据结构中,图是一种基础且常用的结构.现实世界中许多场景可以抽象为一种图结构,如社交网络,交通网络,电商网站中用户与物品的关系等. 目前提到图算法一般指: 经典数据结构与算法层面的: ...

  2. nn.Embedding中padding_idx的理解

    每个句子的长度并不一定是等长的, 这时候就需要对较短的句子进行padding, nn.Embedding中padding_idx是指定padding的索引值. #实例化词嵌入对象,序列进行paddin ...

  3. Word Embedding与Word2Vec学习

    一.词嵌入背景 Embed这个词,英文的释义为, fix (an object) firmly and deeply in a surrounding mass, 也就是"嵌入"之 ...

  4. 点击率预测模型Embedding层的学习和训练

    导读: 本文将简要介绍推荐模型的发展历史,现状,和下一步的研究趋势.并重点介绍针对embedding数据的模型训练及优化.主要包含以下几大部分内容: CTR预测模型(CTR Models) 连续值处理 ...

  5. Adapting Grad-CAM for Embedding Networks - 度量学习网络可视化方法(reid、人脸识别)

    Adapting Grad-CAM for Embedding Networks TL;DR 基于 grad-cam 修改得到一种适配embedding网络的可视化方法,可以用于人脸识别.reid等任 ...

  6. 《Attributed Social Network Embedding》论文学习笔记

    一.研究背景 本文提出了一种网络表示学习算法:将结构信息和属性信息同时输入深度神经网络,实现非线性特征抽象,相对传统的浅层神经网络语言模型,有较大性能提升.同时作者提出了离散属性信息的处理方式,是本文 ...

  7. js 中使用idx模块方便获取链条式的对象属性值

    1. 背景 从一个js对象的属性值中的属性再次获得值,或者从集合中获得元素再获得属性值要写很多判断是否空的表达式,才能继续读取,否则就出现异常.这在开发过程很繁琐的事情,idx 模块就是来解决这个问题 ...

  8. 深度学习推荐系统中各类流行的Embedding方法

    Embedding技术概览: 对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上) Graph Embedding简介 Word2Vec和 ...

  9. 深度学习推荐系统中各类流行的Embedding方法(下)

    我的个人微信公众号: Microstrong 微信公众号ID: MicrostrongAI 微信公众号介绍: Microstrong(小强)同学主要研究机器学习.深度学习.推荐系统.自然语言处理.计算 ...

最新文章

  1. greenplum安装札记(待完善)
  2. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
  3. wxWidgets:wxAppConsole类用法
  4. JVM用户自定义加载器实现步骤
  5. 华为交换机查看端口流量_华为交换机限速及流量统计配置
  6. linux/shell相关知识点
  7. 【专栏精选】网络封包神器protobuf简介
  8. html主要用于组织网页的,HTML网页基本组成概述
  9. where条件中等值连接使用双竖杠影响SQL性能
  10. VR/AR平台战略与实践(1)
  11. 为什么用JS取不到cookie的值?解决方法如下!
  12. mysql mgr监控_6. MySQL组复制(MGR)全解析 Part 6 监控MySQL组复制
  13. java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室
  14. 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
  15. elementui组件中,树形组件的使用
  16. mac上好用的文档转换器Doxillion Plus
  17. 用matlab计算卫星的瞬时位置,用MATLAB计算GPS卫星位置.PDF
  18. 软工网络15个人阅读作业2(201521123007谭燕)
  19. 引用程序集没有强名称的解决办法
  20. js根据后缀名判断文件的类型

热门文章

  1. 【数据结构与算法学习笔记001】Kalman滤波
  2. MyEclipse/eclipse的php开发调试环境配置
  3. 眼镜折断了-- 涂笔
  4. 新论文 | 钢混组合梁多尺度BIM正向设计研究
  5. 实现一个工资管理系统
  6. BI低代码数字化应用搭建平台
  7. linux修改磁盘标签,Ubuntu挂载硬盘,修改卷标
  8. 电脑遇到问题,需要重新启动。
  9. 这份“插件英雄榜Top40”才是Chrome的正确打开方式!(Github7000+ Stars)
  10. Nature子刊:科学家在类脑芯片上实现类似LSTM的功能,能效高1000倍