4

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

两个问题:

  1. Keras 只提供Deconvolution2D层,但没有Unpooling也没有“反向 ReLU”层。我如何利用论文中提到的那些开关变量来实现反池化?我如何必须使用反向 ReLU(或者它只是“正常” ReLU)?

  2. KerasDeconvolution2D层具有属性activationsubsample. 也许这些是解决我问题的关键?!如果是,我将不得不用一个图层替换我所有的图层Convolution2D++Activation组合,对吗?PoolingDeconvolution2D

我感谢您的帮助!

4

1 回答 1

1

您引用的论文的作者(据我所知)简要讨论了如何处理这个问题,具体来说:

  1. ReLU。ReLU 的逆是... ReLU。由于卷积应用于前向传递中的激活函数,因此反卷积应应用于反向传递中的校正重建。
  2. 汇集。严格来说,没有办法反转池化。引用该论文,“我们可以通过在一组开关变量中记录每个池化区域内最大值的位置来获得近似逆。在反卷积网络中,解池操作使用这些开关将来自上层的重建放置到适当的位置,保留刺激的结构。”

现在,更接近实际实现和 Keras,看看这个线程- 你会发现一些可以立即使用的示例。

于 2017-03-07T12:27:13.400 回答