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

时间:2019-04-09 10:06:17

标签: keras deep-learning conv-neural-network

我的问题很简单。我想将ConvNet中使用的深层过滤器可视化,以提取预测最终模型的功能。通过可视化,我的意思是将其保存为{png {3}}最后一层中所示的滤镜等.png格式,实际上我们可以在最后一层滤镜中看到一辆汽车

我可以通过我自己的问题https://s3-ap-south-1.amazonaws.com/av-blog-media/wp-content/uploads/2018/03/cnn_filters.png提供的帮助来可视化第一卷积层的过滤器,但这仅显示了第一层的可视化。第一层滤镜看起来像一些随机着​​色的3x3像素图像。但是我想在第一个链接中看到最终层过滤器,例如汽车过滤器。

第一层滤镜看起来像一些随机彩色的3x3像素图像。但我想在第一个链接中看到最终层过滤器,例如汽车过滤器。 甚至汽车滤清器Visualising Keras CNN final trained filters at each layer的文章也只包含第一层代码

2 个答案:

答案 0 :(得分:1)

您可以通过以下方法获取不同图层的权重:

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]

其中mX中某个图像的编号作为输入。

答案 1 :(得分:1)

Python库keras-vis是可视化CNN的绝佳工具。它可以生成转换过滤器可视化效果,密集层可视化效果和注意力图。最新版本比较旧(并且有一些错误),所以我建议从{"contract":{"marketScope":"AT","businessPartner":"GBM","salesChannelInformation":{"salesChannelCode":"Integrated-Test","salesChannel":"B-Partner information 1"}}} 安装:

master