首页 > 解决方案 > 在 nn.Embedding() 中设置 padding_idx=0 后是否需要任何额外的屏蔽?

问题描述

我正在向 GRU 传递一批句子。这些句子的长度不同,并且已被填充(padding_idx = 0)以形成批处理。句子的长度变化很大,从 32 个单词到 105 个单词。我在创建嵌入层时指定了 padding_idx。如果我不使用 nn.pack_padded_sequence,是否仍需要任何类型的屏蔽信息,或者是否会在内部处理?

另外,在从 GRU 获得 hidden_​​states 后,我想形成句子表示。为此,我在为一个句子获得的 hidden_​​states 上应用了一个软注意机制。基本上,我为每个隐藏状态获得一个分数并取加权平均值。这也会为对应的 padding_idx 的隐藏状态分配一个权重。这是正确的还是我需要在这里使用遮罩?就像将 padding_idx 对应的隐藏状态的权重设置为非常小的值一样。

标签: pytorchrecurrent-neural-networkmasking

解决方案


推荐阅读