【问题标题】:Which merge layers to use in keras?在 keras 中使用哪些合并层?
【发布时间】:2018-05-18 09:01:53
【问题描述】:

Keras 有许多不同的方式来合并输入,例如 Add()Subtract()Multiply()concatenate() 等...

它们是否都具有相同的效果,或者在某些情况下更可取?

【问题讨论】:

  • 他们都做不同的事情,这一切都取决于具体的问题和应用。
  • 你能举一个例子说明一层更好吗?为什么?这将极大地帮助我。提前致谢。
  • 你有什么相关的吗?我正在寻找相同的部分

标签: python neural-network keras


【解决方案1】:

这实际上取决于您要实现的目标,但让我们简要介绍一下不同的合并层以及它们通常用于什么:

  • add 对于使用 relu 激活函数的网络来说,加法是一种常见的合并操作,因为总和也是正数,并且可以编码 OR 操作。例如,您想使用深度网络识别此答案的任何 cmets 是否为正,然后您可以添加所有编码表示。
  • subtract 减法与平方相结合,因此 (x-y)^2 用于等式关系,close 与另一个之间的关系如何。这些在注意力计算中弹出,图像中的这个区域是否包含我正在寻找的特征可能是一个减法。
  • multiply 与减法类似,如果您有特征,例如来自 tanh,那么您可以将它们相乘以找到相似的特征。如果两者都是正数或负数,则乘法将为正负数,否则网络会很好地使用此信息。
  • 平均 通常用于连接而不丢失信息,但如果问题在数学上有意义,让每个先前的计算分支具有相同的权重,那么你就取平均值。例如,您可能希望找出段落的整体情绪,并且不希望任何单个否定句影响中性段落。
  • ma​​ximum 会出现在像MaxPooling 这样的池化操作中,并允许您在维度上实现一些不变性。在图像中,将猫分类为猫的位置无关紧要,同样,如果您只想检测异常,则异常发生的位置也无关紧要。
  • 连接是最常见的,因为它让上游网络决定如何使用给定的信息。它用于收集信息,通常是其他合并层的输出。因此,您可以计算乘法并与其输入 [x, y, x*y] 合并。默认情况下,Bidirectional 使用它来让来自两个方向的信息。

【讨论】:

    【解决方案2】:

    合并图层执行选定的操作。有关详细的 keras 文档:https://keras.io/layers/merge/。 添加:添加输入列表,如果是 Keras 模型,则添加张量。 乘:输入列表的元素乘法。 等等。

    因此,请根据您的应用进行选择。效果会不一样,科学cmets请过:

    如果你是CV背景,这篇论文会给你更多的见解:https://arxiv.org/pdf/1611.06612.pdf

    【讨论】:

      猜你喜欢
      • 2017-08-11
      • 1970-01-01
      • 2017-11-26
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 2016-10-24
      相关资源
      最近更新 更多