在PyTorch的MultiHeadAttention中,
key_padding_mask
和attn_mask
有什么区别:key_padding_mask——如果提供了此参数,则键(key)中指定的填充元素将被注意力机制忽略。当给定二进制掩码并且值为True时,注意力层上相应的值将被忽略。当给定字节掩码并且值不为零时,注意力层上相应的值将被忽略。
attn_mask——2D或3D掩码,防止注意力机制关注特定位置。2D掩码将被广播到所有批次,而3D掩码允许为每个批次的条目指定不同的掩码。
提前感谢。
batch_size=32
和num_heads=4
时,att_mask[:4,:,:]
是用于第1个项目(对于头1、2、3和4)的掩码吗? - skurp