自然语言中使用批处理时候, 每个句子的长度并不一定是等长的, 这时候就需要对较短的句子进行padding, 填充的数据一般是0, 这个时候, 在进行词嵌入的时候就会进行相应的处理, nn.embedding会将填充的映射为0
其中padding_idx就是这个参数, 这里以3 为例, 也就是说补长句子的时候是以3padding的, 这个时候我们液晶padding_idx设为3
import torch
import torch.nn as nn
embed = nn.Embedding(10, 3, padding_idx=3) # padding_idx 默认是0
embed.weight
你会看到所以为3的向量为0, 让我们再举个栗子
x = torch.tensor([[2, 2, 3, 3], [1, 2, 5, 4]])
embed(x)
有两个句子, 长度是4, 但是第一个句子长度只有2, 另外其是由3来padding的, 这时候通过embedding我们可以看到:
映射后是0了,这样继续进行后续的计算了