微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MultiheadAttention 中的 attn_output_weights

如何解决MultiheadAttention 中的 attn_output_weights

我想知道 attn_output_weight 的矩阵是否可以证明输入序列中每个词对之间的关​​系。 在我的项目中,我根据这个输出绘制了热图,它显示如下:

enter image description here

但是,我几乎看不到这张热图中的任何信息。 我参考了别人的作品,他们的热图是这样的。至少矩阵的对角线应该具有深色。

enter image description here

那我想知道我绘制热图的方法是否正确(即直接使用attn_output_weight输出)如果这不是正确的方法,请告诉我如何绘制热图地图?

解决方法

看来您的值范围相当有限。在目标示例中,值的范围介于 [0,1] 之间,因为每一行代表 softmax 分布。这从注意力的定义中可以看出:

enter image description here

我建议您对每一行/列进行标准化(根据您使用的注意力实现),最后将 [0,1] 范围内的注意力图可视化。您可以在 matplotlib 绘图中分别使用参数 vminvmax 执行此操作。

如果这不能解决问题,可以添加包含您正在使用的模型和可视化脚本的代码片段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。