Embedding之padding_idx学习

题目

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有关。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

365JHWZGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值