Одно из основных различий между Functional
и Sequential
API заключается в том, что Sequential
работает с одним входом и одним выходом, а Functional
API работает с одним входом и одним выходом или одним входом и несколькими -выход, или несколько входов и несколько выходов. Таким образом, используя Functional
API, вы можете добавить два уровня множественных входов через `keras.layers.Add ().
Кроме того, этот keras.layers.Add()
можно использовать для добавления двух входных тензоров, которые не являются действительно делаем. мы скорее можем использовать как d = tf.add (a, b). И c
, и d
равны
a = tf.constant(1.,dtype=tf.float32, shape=(1,3)).
b = tf.constant(2.,dtype=tf.float32, shape=(1,3)).
c = tf.keras.layers.Add()([a, b]).
Следующий пример взят с веб-сайта keras. Вы можете увидеть, как это используется в Functional
API
import keras
input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
# equivalent to added = keras.layers.add([x1, x2])
added = keras.layers.Add()([x1, x2])
out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)