可视化类激活的热力图
它有助于了解一张图像的哪一部分让卷积神经网络做出了最终的分类决策。
这种通用的技术叫作类激活图(CAM,class activation map)可视化,它是指对输入图像生成类激活的热力图。类激活热力图是与特定输出类别相关的二维分数网格,对任何输入图像的每个位置都要进行计算,它表示每个位置对该类别的重要程度。举例来说,对于输入到猫狗分类卷积神经网络的一张图像,CAM 可视化可以生成类别“猫”的热力图,表示图像的各个部分与“猫”的相似程度,CAM 可视化也会生成类别“狗”的热力图,表示图像的各个部分与“狗”的相似程度。
加载带有预训练权重的 VGG16 网络
from keras.applications.vgg16 import VGG16
model = VGG16(weights='imagenet')
为 VGG16 模型预处理一张输入图像
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input, decode_predictions
import numpy as np
# 目标图像的本地路径
img_path = '/Users/fchollet/Downloads/creative_commons_elephant.jpg'
# 大小为 224×224 的 Python图像库(PIL,Python imaging library)图像
img = image.load_img(img_path, target_size=(224, 224))
# 形状为 (224, 224, 3) 的float32 格式的 Numpy 数组
x = image.img_to_array(img)
# 添加一个维度,将数组转换为(1,