tensorflow 实现 Class Activation Map 用于 分类目标定位

Posted wpydcr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow 实现 Class Activation Map 用于 分类目标定位相关的知识,希望对你有一定的参考价值。

 

 

对《Learning Deep Features for Discriminative Localization》的剖析
一个最近的使用例子是吴恩达公司做的 肺炎诊断准确率超过人类医生

在这篇论文中,认为图片在经过卷积层的特征提取后,通过CAM,除了不弱的分类精度外,还能对分类的依据进行定位,相当于诠释网络是如何做出分类判断的。
CAM的核心部分如下图:
技术分享图片

在卷积层之后,使用了一个叫GAP的池,全称是global average pooling。全局平均池的优点就是大量减少参数量,以及保持图像的空间结构。
尾端使用全连接层full connected layer进行分类输出。该层能够针对每一个分类有一套权重。

使用 Inception V3 举例:

该网络经过卷积层后,大小为(8x8x2048),经过GAP层后(1x1x2048),全连接层权重为(2048x10)。10个类别分别对应着10个全连接层权重,每个类别对应2048个权重。
生成热力图时,将图片卷积后的(8x8x2048)和某一类别全连接层权重(1x2048)的乘积后得到热力图(8x8)。将该热力图暴力展开成所需要的大小即可。

该例所使用的代码已全部上传至我的github中,可自行下载查看,欢迎交流,欢迎star。
(https://github.com/wpydcr/tf-slim-Class-Activation-Map)

 
















以上是关于tensorflow 实现 Class Activation Map 用于 分类目标定位的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow训练自己的数据集实现CNN图像分类

在 pycharm 上加载经过训练的 Tensorflow 保存模型时出错。 ValueError:int() 的无效文字,基数为 10:'class_name'

TensorFlow 实战—— tf train(优化算法)

Tensorflow+kerasKeras API三种搭建神经网络的方式及以mnist举例实现

Tensorflow+kerasKeras API三种搭建神经网络的方式及以mnist举例实现

TensorFlow上实践基于自编码的One Class Learning