IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 《Python 深度学习》刷书笔记 Chapter 5 Part-5 卷积神经网络的可视化 (非洲象热力图) -> 正文阅读

[人工智能]《Python 深度学习》刷书笔记 Chapter 5 Part-5 卷积神经网络的可视化 (非洲象热力图)


可视化类激活的热力图


对于卷积神经网络,还存在着另外一种可视化的方法,有助于我们了解一张图片的那一部分让卷积神经网络做出了最终的决策,这种通用的技术被称为类激活图(CAM),其特点如下:

  • 输出与特定类别相关的二维分数网格
  • 对于输入图像的每一个位置都需要计算
  • 表示每个位置对该类别的重要程度
  • 表现了输入图像对不同通道的激活强度

5-40 加载带有预训练权重的VGG16网络


# 注意,这个网络中包含了密集连接分类器,但是在前面的例子我们都丢弃了这个分类器
# 下面的引入网络也和原来的版本有所变化,才能正确执行4-41
# 运行这段代码的时候是有warning 的,不需要管
from tensorflow.keras.applications import VGG16
from tensorflow.keras import backend as K
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
tf.compat.v1.disable_eager_execution()

model = VGG16(weights = 'imagenet')

5-41 为VGG16模型预处理一张输入图像


from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input, decode_predictions
import numpy as np

img_path = r'E:\code\PythonDeep\DataSet\creative_commons_elephant.jpg'
img = image.load_img(img_path, target_size = (224, 224))

# 将三维张量改编为float32格式的numpy数组
x = image.img_to_array(img)

# 添加一个维度使其变为4D向量
x = np.expand_dims(x, axis = 0)

# 对数据进行批量处理
x = preprocess_input(x)

# 运行预训练的VGG16网络
preds = model.predict(x)
print('predict:', decode_predictions(preds, top = 3)[0])

# 打印索引编号
np.argmax(preds[0])
predict: [('n02504458', 'African_elephant', 0.9334816), ('n01871265', 'tusker', 0.06098435), ('n02504013', 'Indian_elephant', 0.00540654)]





386

5-42 应用Grad-CAM算法


# 要加上这两句,注意此处与原书不同,仅供参考
tf.compat.v1.disable_eager_execution()
# K.clear_session()

# 预测向量中“非洲象”的元素
african_elephant_output = model.output[:, 386]

# 输出最后一个卷积层对应的特征图
last_conv_layer = model.get_layer('block5_conv3')

# 非洲象类别对于block5_conv3的梯度特征图
grads = K.gradients(african_elephant_output, last_conv_layer.output)[0]

# 特征通道的平均梯度大小
pooled_grads = K.mean(grads, axis = (0, 1, 2))

# 访问刚刚定义的量
iterate =K.function([model.input], [pooled_grads,last_conv_layer.output[0]])

# 对于两个大象的样本图像,这两个向量都是numpy数组
pooled_grads_value, conv_layer_output_value = iterate([x])

for i in range(512):
    conv_layer_output_value[:, :, i] *= pooled_grads_value[i]



# 生成热力图    
heatmap = np.mean(conv_layer_output_value, axis = -1)

5-43 热力图后处理


heatmap = np.maximum(heatmap, 0)
heatmap /= np.max(heatmap)

plt.matshow(heatmap)
<matplotlib.image.AxesImage at 0x1863bed2ac8>

1

5-44 将热力图与原始图像叠加


import cv2

# 用cv2加载图像
img = cv2.imread(img_path)

# 将热力图的大小调整为与原始图像相同
heatmap = cv2.resize(heatmap, (img.shape[1], img.shape[0]))

# 将热力图转换为RGB格式
heatmap = np.uint8(255 * heatmap)

# 将热力图运用于原始图像
heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET)

# 设置0.4热力图强度因子
superimposed_img = heatmap * 0.4 + img

# 保存
cv2.imwrite(r'E:\code\PythonDeep\DataSet\creative_commons_elephant_heat.jpg', superimposed_img)
True

经过最后处理的非洲象热力图

heat


总结

观察上图,不难发现,小象的耳朵部分的激活强度相当大,呈现亮红色,这很可能是由于神经网络找到的印度象和非洲象的不同之处


写在最后

注:本文代码来自《Python 深度学习》,做成电子笔记的方式上传,仅供学习参考,作者均已运行成功,如有遗漏请练习本文作者

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
<(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:31:30  更:2021-10-11 17:33:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:19:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码