关于特征原型的解释性
如图红色featuremap 我们可以将整个feature map 中的特征求和
也就是(1+.....+8) * 8 的到sum,再用sum除以64,得到平均值,这也就是所说的特征向量。在图中我们四个feature map ,所以最后我们的特征向量就是一个[1,4]的tensor 如【【4.5】,【number】,【number】,【number】】
![](https://i-blog.csdnimg.cn/blog_migrate/6f6b9f9a1b88edc3a5e8dcd3ae29f80b.png)
在代码中常出现的masked_feature = torch.sum(feature * mask, dim=(2, 3)) / (mask.sum(dim=(2, 3)) + 1e-5)
1.feature*mask 就是mask 与 feature map中的值对应相乘
如图 黄色的mask 跟粉红feature map 相乘 得到一个 8×8大小的
矩阵
2. torch.sum(feature * mask, dim=(2, 3))) 意思是将上述得到 8×8大小的矩阵相加
3.torch.sum(feature * mask, dim=(2, 3)) / (mask.sum(dim=(2, 3)) + 1e-5)
相加之后的结果除以 (mask相加的值+0.00001)
最后得到一个特征向量((在代码我们得到tensor【B,N】),再次我mask为了方便并没有画4个mask,其实这里的mask因与feature map一样多)
![](https://i-blog.csdnimg.cn/blog_migrate/c1bd105718f22abfcdb1553123e7667c.png)
(有错误欢迎指出)