从DETR到Mask2Former(3):masked attention的attention map可视化

Mask2Former的论文中有这样一张图,表示masked attenion比cross attention效果要好

那么这个attention map是怎么画出来的?

在mask2attention的源代码中 CrossAttentionLayer这个类中,在forward_post函数中做如下修改:

    def forward_post(self, tgt, memory,
                     memory_mask: Optional[Tensor] = None,
                     memory_key_padding_mask: Optional[Tensor] = None,
                     pos: Optional[Tensor] = None,
                     query_pos: Optional[Tensor] = None):
        tgt2, atten_weight = self.multihead_attn(query=self.with_pos_embed(tgt, query_pos),
                                   key=self.with_pos_embed(memory, pos),
                                   value=memory, attn_mask=memory_mask,
                                   key_padding_mask=memory_key_padding_mask, average_attn_weights=False)
        
        atten_weight = atten_weight.squeeze().detach().cpu().numpy()
        head_num = 0
        selected_query_num = 0
        if atten_weight.shape[-1] == 21888:
            import matplotlib.pyplot as plt
            # 创建2行4列的图形
            fig, axs = plt.subplots(2, 4, figsize=(12, 6))
            
            # 使用8次for循环在每个子图中进行绘制
            for i in range(2):
                for j in range(4):
                    atten_map = atten_weight[head_num, selected_query_num, :]
                    atten_map = atten_map.reshape((128, 171))
                    
                    head_num += 0
                    
                    axs[i, j].imshow(atten_map)
            plt.show()
        
        tgt = tgt + self.dropout(tgt2)
        tgt = self.norm(tgt)
        
        return tgt

在 nn.MultiheadAttention 类实例的forward方法中,加入

average_attn_weights=False

得到每个注意力头的attention map,将attention_weight可视化,就得到了论文中的图片。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rt-detr是一种结合了实时(detection)和目标转换(transformer)的视觉感知模型,它可以用于目标检测和图像分割任务。在rt-detr可视化方面,它为我们提供了一种直观的方式来理解模型的工作过程。 首先,rt-detr可视化可以帮助我们理解模型的输入和输出。它可以可视化图像中的目标边界框,以及每个目标类别的置信度得分。这样,我们可以直观地看到模型是如何从原始图像中检测和定位目标的。 其次,rt-detr可视化还可以帮助我们分析模型的性能和效果。我们可以通过可视化模型预测的目标与真实目标之间的重叠程度来评估模型的准确性和召回率。此外,我们还可以通过可视化分析模型在不同场景下的表现,来研究模型的泛化能力和鲁棒性。 另外,rt-detr可视化还可以用于模型的调试和优化。通过可视化模型的中间层特征图,我们可以观察到模型在不同层次上的特征提取过程。这有助于我们理解模型是如何抽取并编码图像中的信息的。而且,通过可视化模型的注意力机制,我们可以进一步分析模型对图像中不同区域的关注程度和权重分配情况。 总之,rt-detr可视化是一种有力的工具,它使我们能够更好地理解和研究模型的工作原理和性能。它不仅可以提高我们对目标检测和分割任务的认识,而且可以帮助我们更好地优化和改进模型的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值