自然語言中使用批處理時候, 每個句子的長度並不一定是等長的, 這時候就需要對較短的句子進行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了,這樣繼續進行後續的計算了