【问题标题】:keras usage of the Activation layer instead of activation parameterkeras 使用激活层而不是激活参数
【发布时间】:2017-04-06 22:33:41
【问题描述】:

Keras 中有一个 Activation 层。

好像是这段代码:

  model.add(Convolution2D(64, 3, 3))
  model.add(Activation('relu'))

还有这个:

  model.add(Convolution2D(64, 3, 3, activation='relu'))

产生相同的结果。

这个额外的Activation层的目的是什么?

[Upgr: 2017-04-10] 以上两种情况在性能上有区别吗?

【问题讨论】:

    标签: python machine-learning neural-network keras


    【解决方案1】:

    如您所见,这两种方法是等效的。我将向您展示一些使用此层可能会有所帮助的场景:

    1. 同一层 - 不同的激活- 很容易想象一个网络,您希望将不同的激活应用于相同的输出。没有Activation 是不可能的。
    2. 激活前需要输出 - 例如在 siamese 网络 中,您正在使用 softmax 作为最终激活来训练您的网络 - 但最终 - 您希望拥有所谓的 logits - 反向 softmax 函数。没有额外的Activation 层可能会很困难。
    3. 显着性图:在显着性图中 - 类似于您在前一点中所拥有的 - 您还需要在激活之前输出以计算梯度 w.r.t。对它来说 - 没有Activation 这是不可能的。

    如您所见 - 缺少 Activation 会使激活之前的层输出和最终激活强耦合。这就是为什么Activation 可能非常有用 - 因为它打破了这种联系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2020-08-24
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2020-09-12
      相关资源
      最近更新 更多