在 Keras CNN 中可视化深层过滤器



我的问题很简单。我想可视化 ConvNet 中在深层中使用了哪些过滤器来提取预测最终模型的特征。通过可视化,我的意思是将其保存为.png格式,例如 https://s3-ap-south-1.amazonaws.com/av-blog-media/wp-content/uploads/2018/03/cnn_filters.png 最后一层中显示的过滤器,我们实际上可以在最后一层过滤器中看到一辆汽车

我可以通过我自己的问题可视化 Keras CNN 最终训练过滤器在每一层提供的帮助来可视化第一卷积层的过滤器,但这只显示第一层的可视化。第一层滤镜看起来像一些随机着色的 3x3 像素图像。但我想看到最后一层过滤器,就像第一个链接中的汽车过滤器一样。

第一层滤镜看起来像一些随机着色的 3x3 像素图像。但我想看到最后一层过滤器,就像第一个链接中的汽车过滤器一样。 即使是汽车滤清器 https://www.analyticsvidhya.com/blog/2018/03/essentials-of-deep-learning-visualizing-convolutional-neural-networks/的文章也只有第一层的代码

您可以通过以下方式解决不同层的权重:

w = model.layers[i].get_weights()[0][:,:,:,:]

其中i是图层的编号。

对于链接中的图片,我不确定它实际上是权重还是显示的激活图。你可以通过以下方式得到那个:

from keras import backend as K
get_output = K.function([model.layers[0].input],[cnn.layers[i].output])
output_normal = get_output([X])[0][m]

其中m是作为输入的X中某个图像的编号。

Python 库 keras-vis 是可视化 CNN 的绝佳工具。它可以生成卷积过滤器可视化、密集层可视化和注意力图。最新版本很旧(而且有点错误),所以我建议从master安装:

pip install git+https://github.com/raghakot/keras-vis.git

最新更新