如何在keras中可视化卷积神经网络中间层的输出?

Afr*_*rid 2 python classification conv-neural-network keras tensorflow

最近我为猫狗分类创建了基本的CNN模型(非常基础).如何使用keras可视化这些图层的输出?我使用Tensorflow后端进行keras.

Dan*_*ler 5

您可以定义一个模型,该模型获取您要查看的每个图层的输出并进行预测:

假设你有完整的模型:

cnnModel = #a model you have defined with layers
Run Code Online (Sandbox Code Playgroud)

并且假设您想要索引1,5和8
层的输出.使用这些层的输出从此创建一个新模型.

from keras.models import Model

desiredLayers = [1,5,8]
desiredOutputs = [cnnModel.layers[i].output for i in desiredLayers] 

#alternatively, you can use cnnModel.get_layer('layername').output for that    

newModel = Model(cnnModel.inputs, desiredOutputs)
Run Code Online (Sandbox Code Playgroud)

使用此模型进行预测:

print(newModel.predict(inputData))
Run Code Online (Sandbox Code Playgroud)

现在,"可视化"这些结果可能很棘手,因为它们可能比常规图像拥有更多的通道.