可视化第二个卷积层
Posted
技术标签:
【中文标题】可视化第二个卷积层【英文标题】:visualizing 2nd convolutional layer 【发布时间】:2018-12-25 13:53:43 【问题描述】:因此,通过 tf.summary,我将模型中的第一个卷积层(形状为 [5,5,3,32])可视化为一组单独的图像,每个过滤器一个。所以这一层有一个 5x5 尺寸的过滤器,深度为 3,共有 32 个。我将这些过滤器视为 5x5 彩色(RGB)图像。
我想知道如何将其推广到第二个卷积层和第三个卷积层...... 第二个卷积层的形状是[5,5,32,64]。 我的问题是如何将该张量转换为单独的 5x5x3 图像?
对于形状为 [5,5,3,32] 的第一个 conv 层,我通过转置第一个 tf.transpose(W_conv1,(3,0,1,2))
,然后拥有 32 个 5x5x3 图像来对其进行可视化。
执行tf.transpose(W_conv2,(3,0,1,2))
会产生一个形状 [64,5,5,32]。那么我将如何使用那些“32 个颜色通道”? (我知道它不是那么简单:))。
【问题讨论】:
【参考方案1】:高级过滤器的可视化通常是间接完成的。要可视化特定过滤器,您需要查找过滤器响应最多的图像。为此,您在图像空间中执行梯度上升(而不是像在训练网络时那样更改网络参数,而是更改输入图像)。
如果您使用以下 Keras 代码,您会更容易理解:https://github.com/keras-team/keras/blob/master/examples/conv_filter_visualization.py
【讨论】:
好东西! :) 在阅读完最大激活图像后,我开始怀疑是要走的路。谢谢你的解释:) 你不知道有一个使用低级 TensorFlow API 的例子吗? 不,我没有,但即使从 keras 移植它也应该不会太难。以上是关于可视化第二个卷积层的主要内容,如果未能解决你的问题,请参考以下文章