keras融合层merge

Merge Layers

接受一个tensor的list(大多数要求shape相同),返回一个tensor作为计算结果。

  • Add: keras.layers.Add()
  • Subtract: keras.layers.Subtract()
  • Multiply: keras.layers.Multiply(), 元素积
  • Dot: keras.layers.Dot(axes, normalizer=False), 点积
  • Average: keras.layers.Average()
  • Maximum: keras.layers.Maximum()
  • Concatenate: keras.layers.Concatenate(axis=-1)
import keras

input1 = keras.layers.Input(shape=(16,))
input2 = keras.layers.Input(shape=(32,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
x2 = keras.layers.Dense(8, activation='relu')(input2)

added = keras.layers.Add()([x1, x2])

out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)

Functional Interface

包括add, substract, multiply, dot, average, maximum和concatenate
提供函数式写法的接口,实现功能和上文一样。

import keras

input1 = keras.layers.Input(shape=(16,))
input2 = keras.layers.Input(shape=(32,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
x2 = keras.layers.Dense(8, activation='relu')(input2)

added = keras.layers.add([x1, x2])

out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)