Keras深度学习实战(11)——可视化神经网络中间层输出
0. 前言
在使用《卷积神经网络进行性别分类》的应用中,我们构建了一个卷积神经网络 (Convolutional Neural Network
, CNN
) 模型,该模型可以以 95%
的准确率对图像中人物的性别进行分类。但是,有关 CNN
模型学习到的内容,对于我们来说仍然是一个黑匣子。
在本节中,我们将学习如何提取模型中各种卷积核学习到的内容特征。此外,我们将对比 CNN
中开始几个卷积层中的卷积核学习到的内容与最后几个卷积层中的卷积核学习到的内容。
1. 可视化神经网络中间层输出
为了提取卷积核学习到的内容,我们采用以下策略:
- 选择要进行分析的图像
- 选择模型的第一个卷积层,以了解第一个卷积层中的各个卷积核学习到的内容
- 计算第一层中卷积的输出,要提取第一层的输出,需要使用函数式
API
:- 函数式
API
的输入是输入图像,输出是模型第一层的输出 - 返回所有通道(卷积核)上得到的中间层的输出
- 函数式
- 在模型的最后一个卷积层上同样执行的步骤,以可视化最后一卷积层的输出
- 然后,我们将可视化所有通道上的卷积运算的输出
- 最后,我们还将可视化所有图像上给定通道的输出
接下来,我们将使用 Keras
实现以上策略用于可视