在keras中使用哪些合并层?

时间:2018-04-23 22:36:53

标签: python neural-network keras

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

它们是否都具有相同的效果,或者存在哪种情况更可取?

2 个答案:

答案 0 :(得分:7)

这实际上取决于您要实现的目标,但请简要介绍一下不同的合并层以及它们经常用于的内容:

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

答案 1 :(得分:1)

合并图层执行选定的操作。对于详细的keras文档:https://keras.io/layers/merge/。 添加:添加Keras Model的输入,张量列表。 乘法:输入列表的元素乘法。 等等。

因此,请根据您的应用进行选择。效果会有所不同,科学评论请通过:

您来自简历背景,本文将为您提供更多见解:https://arxiv.org/pdf/1611.06612.pdf