首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >掩蔽层与attention_mask参数在MultiHeadAttention中的关系

掩蔽层与attention_mask参数在MultiHeadAttention中的关系
EN

Stack Overflow用户
提问于 2022-09-07 13:14:12
回答 2查看 208关注 0票数 5

我在变压器模型中使用MultiHeadAttention层(我的模型非常类似于命名实体识别模型)。因为我的数据有不同的长度,所以我在MultiHeadAttention中使用填充和attention_mask参数来屏蔽填充。如果我在使用Masking层之前使用MultiHeadAttention,它是否会产生与attention_mask参数相同的效果?或者我应该同时使用:attention_maskMasking层?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-11 13:19:05

用角掩蔽和填充上的Tensoflow文档可能会有所帮助。

以下是该文件的摘录。

当使用Functional或Sequential时,由嵌入层或掩蔽层生成的掩码将通过网络传播到任何能够使用它们的层(例如,RNN层)。Keras将自动获取与输入相对应的掩码,并将其传递给任何知道如何使用它的层。

tf.keras.layers.MultiHeadAttention还支持TF2.10.0中的自动掩码传播。

改进了对tf.keras.layers.MultiHeadAttention的掩蔽支持。

  • 用于查询、键和值输入的隐式掩码将自动用于计算该层的正确注意掩码。当调用该层时,这些填充掩码将与任何直接传入的attention_mask相结合。这可以与tf.keras.layers.Embedding和mask_zero=True一起使用,以自动推断出正确的填充掩码。

  • 在层中添加了一个use_causal_mask调用时间。传递use_causal_mask=True将计算因果注意掩码,并可选择地将其与调用该层时直接传入的任何attention_mask组合。
票数 1
EN

Stack Overflow用户

发布于 2022-09-10 12:17:25

掩蔽层保持输入向量不变,并创建一个掩蔽向量,如果它们需要掩码向量(如RNN层),则传播到以下层。如果您实现自己的model.If --使用来自huggingFace的模型--您可以使用它,例如,如果您想保存掩码向量以供以后使用,如果不是,掩蔽操作已经是built_in,那么在开始时不需要添加任何掩蔽层。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73636196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档