【问题标题】: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 个颜色通道”? (我知道它不是那么简单:))。

【问题讨论】:

    标签: tensorflow conv-neural-network tensorboard


    【解决方案1】:

    高级过滤器的可视化通常是间接完成的。要可视化特定过滤器,您需要查找过滤器响应最多的图像。为此,您在图像空间中执行梯度上升(而不是像在训练网络时那样更改网络参数,而是更改输入图像)。

    如果您使用以下 Keras 代码,您会更容易理解:https://github.com/keras-team/keras/blob/master/examples/conv_filter_visualization.py

    【讨论】:

    • 好东西! :) 在阅读完最大激活图像后,我开始怀疑是要走的路。谢谢你的解释:)
    • 你不知道有一个使用低级 TensorFlow API 的例子吗?
    • 不,我没有,但即使从 keras 移植它也应该不会太难。
    猜你喜欢
    • 2019-05-17
    • 1970-01-01
    • 2017-01-09
    • 2017-11-22
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多