如何在keras中可视化中间要素图层?

时间:2017-03-07 10:55:12

标签: machine-learning neural-network visualization keras deconvolution

我已阅读论文Visualizing and Understanding Convolutional Networks by Zeiler and Fergus,并希望利用他们的可视化技术。 这篇论文听起来很有希望 - 但不幸的是,我不知道如何在Keras(版本1.2.2)中实现它。

两个问题:

  1. Keras仅提供Deconvolution2D图层,但不提供Unpooling,也不提供“反向ReLU”图层。如何利用文中提到的那些开关变量来实现解除拼接? 我如何使用反向ReLU(或者只是“普通”ReLU)?

  2. Keras Deconvolution2D图层具有activationsubsample属性。 也许那些是解决我问题的关键?! 如果是的话,我必须将所有图层Convolution2D + Activation + Pooling的组合替换为一个Deconvolution2D图层,对吗?

  3. 感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你引用的论文的作者(据我记得)简要介绍了如何处理这个问题,特别是:

  1. RELU。 ReLU的倒数是...... ReLU。由于卷积应用于前向传递中的激活函数,因此应将反卷积应用于后向传递中的校正重建。
  2. 池。严格来说,没有办法反转池。引用该论文,"我们可以通过在一组开关变量中记录每个汇集区域内的最大值的位置来获得近似的逆。在deconvnet中,解开操作使用这些开关将上层的重建置于适当的位置,保留了刺激的结构。"
  3. 现在,更接近实际实现和Keras,看一下this thread - 你会发现一些可以立即使用的例子。