【Attention中mask pad的weight的做法】
在attention中,对attention score进行softmax时,需要考虑到query与pad计算得到的score应该忽略。我们在处理时可以先正常地用高维tensor形式将所有score计算出来,然后根据key的句长将pad所在位置的weight进行mask掉。
下面的代码实现了给定二维tensor X,根据X_len将X中指定位置替换为value值。
def SequenceMask(X, X_len,value=-1e6):
maxlen = X.size(1)
mask =