首页
电脑办公
平面设计
室内设计
影视动画
机械制造
自动控制
IT编程
网站建设
您当前的位置:
首页
>
IT编程
>
深度学习
|
C语言
|
Java
|
VB
|
VC
|
python
|
Android
|
TensorFlow
|
C++
|
oracle
|
学术与代码
|
cnn卷积神经网络
|
gnn
|
图像修复
|
Keras
|
数据集
|
Neo4j
|
自然语言处理
|
深度学习
|
医学CAD
|
医学影像
|
超参数
|
pointnet
|
pytorch
|
异常检测
|
Transformers
|
情感分类
|
知识图谱
|
自学教程:keras CNN卷积核可视化,热度图 python源代码
51自学网
2020-11-13 09:04:46
深度学习
这篇教程keras CNN卷积核可视化,热度图 python源代码写得很实用,希望能帮到您。
卷积神经网络可视化
本文整理自Deep Learning with Python,书本上完整的代码在
这里的5.4节
,并陪有详细的注释。
深度学习一直被人们称为“黑盒子”,即内部算法不可见。但是,卷积神经网络(CNN)却能够被可视化,通过可视化,人们能够了解CNN识别图像的过程。
介绍三种可视化方法
卷积核输出的可视化(Visualizing intermediate convnet outputs (intermediate activations)
,即可视化卷积核经过激活之后的结果。能够看到图像经过卷积之后结果,帮助理解卷积核的作用
卷积核的可视化(Visualizing convnets filters)
,帮助我们理解卷积核是如何感受图像的
热度图可视化(Visualizing heatmaps of class activation in an image)
,通过热度图,了解图像分类问题中图像哪些部分起到了关键作用,同时可以定位图像中物体的位置。
卷积核输出的可视化(Visualizing intermediate convnet outputs (intermediate activations)
想法很简单:向CNN输入一张图像,获得某些卷积层的输出,可视化该输出
代码中,使用到了
cats_and_dogs_small_2.h5
模型,这是在原书5.2节训练好的模型,当然你完全可以使用keras.applications 中的模型,例如VGG16等。
可视化结果如下图。
结论:
第一层卷积层类似边缘检测的功能,在这个阶段里,卷积核基本保留图像所有信息
随着层数的加深,卷积核输出的内容也越来越抽象,保留的信息也越来越少。
越深的层数,越多空白的内容,也就说这些内容空白卷积核没有在输入图像中找到它们想要的特征
卷积核的可视化(Visualizing convnets filters)
卷积核到底是如何识别物体的呢?想要解决这个问题,有一个方法就是去了解卷积核最感兴趣的图像是怎样的。我们知道,卷积的过程就是特征提取的过程,每一个卷积核代表着一种特征。如果图像中某块区域与某个卷积核的结果越大,那么该区域就越“像”该卷积核。
基于以上的推论,如果我们找到一张图像,能够使得这张图像对某个卷积核的输出最大,那么我们就说找到了该卷积核最感兴趣的图像。
具体思路:输入一张随机内容的图像
I
, 求某个卷积核
F
对图像的梯度
G
=
∂
F
/
∂
I
,用梯度上升的方法迭代更新图像
I
=
I
+
η
∗
G
,
η
是类似于学习率的东西。
代码中,使用以及训练好的VGG16模型,可视化该模型的卷积核。结果如下
block1_conv1
block2_conv1
block3_conv1
block4_conv1
block5_conv1
结论:
低层的卷积核似乎对颜色,边缘信息感兴趣。
越高层的卷积核,感兴趣的内容越抽象(非常魔幻啊),也越复杂。
高层的卷积核感兴趣的图像越来越难通过梯度上升获得(block5_conv1有很多还是随机噪声的图像)
热度图可视化(Visualizing heatmaps of class activation in an image)
在图像分类问题中,假设网络将一张图片识别成“猫”的概率是0.9,我想了解到底最后一层的卷积层对这0.9的概率的贡献是多少。换句话时候,假设最后一层卷积层有512个卷积核,我想了解这512个卷积核对该图片是”猫”分别投了几票。投票越多的卷积核,就越确信图片是“猫”,因为它们提取到的特征趋向猫的特征。
代码中,输入了一张大象的图片,然后获得最后一层卷积层的热度图,最后将热度图叠加到原图像,获得图像中起到关键分类作用的部分。结果如下:
keras CNN卷积核可视化,热度图 python源代码
python绘制多分类混淆矩阵
万事OK自学网:51自学网_软件自学网_CAD自学网
自学excel、自学
PS
、自学
CAD
、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。