我在使用功能性API时对lambda层感到困惑请告诉我哪个是正确的
例如
def magic(x):
x2=x+x
return x2
D = Input((n,))
E = Lambda(magic)(D)
d = Model(~~~~)
or
D = Input((n,))
E = magic(D)
d = Model(~~~~)
和另一种情况
def magic():
x2=np.randn(3,1)
return x2
D = Input((n,))
E = Lambda(magic)
d = Model(~~~~)
or
D = Input((n,))
E = magic()
d = Model(~~~~)
请救救我!
如果您要将自定义操作包装为如下所示的图层,则可以使用第一种方法
def magic(x):
x2 = x + x
return x2
inp = tf.keras.Input(shape=(2,))
x = tf.keras.layers.Dense(4, name="id_1")(inp)
# Ways to Define Custom Layer
x = tf.keras.layers.Lambda(lambda val: magic(val))(x)
# or
# x = tf.keras.layers.Lambda(magic)(x)
# or
# x = tf.keras.layers.Lambda(lambda val: (val + val))(x)
x = tf.keras.layers.Dense(4, name="id_2")(x)
model = tf.keras.Model(inputs=inp, outputs=x, name="inner_model")
print(model.summary())