我在变压器模型中使用MultiHeadAttention
层(我的模型非常类似于命名实体识别模型)。因为我的数据有不同的长度,所以我在MultiHeadAttention
中使用填充和attention_mask
参数来屏蔽填充。如果我在使用Masking
层之前使用MultiHeadAttention
,它是否会产生与attention_mask
参数相同的效果?或者我应该同时使用:attention_mask
和Masking
层?
发布于 2022-09-11 05:19:05
用角掩蔽和填充上的Tensoflow文档可能会有所帮助。
以下是该文件的摘录。
当使用Functional或Sequential时,由嵌入层或掩蔽层生成的掩码将通过网络传播到任何能够使用它们的层(例如,RNN层)。Keras将自动获取与输入相对应的掩码,并将其传递给任何知道如何使用它的层。
tf.keras.layers.MultiHeadAttention还支持TF2.10.0中的自动掩码传播。
改进了对tf.keras.layers.MultiHeadAttention的掩蔽支持。
发布于 2022-09-10 04:17:25
掩蔽层保持输入向量不变,并创建一个掩蔽向量,如果它们需要掩码向量(如RNN层),则传播到以下层。如果您实现自己的model.If --使用来自huggingFace的模型--您可以使用它,例如,如果您想保存掩码向量以供以后使用,如果不是,掩蔽操作已经是built_in,那么在开始时不需要添加任何掩蔽层。
https://stackoverflow.com/questions/73636196
复制相似问题