我们这里介绍的一种可视化方法,它有助于了解一张图像的哪一部分让卷积神经网络做出了最终的分类决策。这有助于对卷积神经网络的决策过程进行调试,特别是分类错误的情况下。这种方法可以定位图像中的特定目标。
我们使用预训练的VGG网络来演示这种方法。
from keras.applications.vgg16 import VGG16
K.clear_session()
model = VGG16(weights='imagenet')
如图所示,这是两只非洲象的图片。我们将这张图片转换为VGG16能够读取的格式:模型大小为224224的图像上进行训练,这些训练图像都根据keras.applications.vgg16.preprocess_input函数中的内置的规则进行预处理。因此,我们需要加载图像,将其大小调整为224224,然后将其转化为float32格式的Numpy张量,并应用这些预处理规则。
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'
img = image.load_img(img_path, target_size=(224, 224)) # 大小为224*224的Python图像库图像
x = image.img_to_array(img