Как использовать определенную функцию в функциональных API-керах - PullRequest
0 голосов
/ 21 января 2020

Я сильно путаюсь с лямбда-слоем во время функционального API, пожалуйста, скажите мне, что является правильным

Например

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(~~~~) 

пожалуйста спаси меня !!

1 Ответ

0 голосов
/ 21 января 2020

Вы можете использовать первый способ, если хотите обернуть свою пользовательскую операцию как слой следующим образом

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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...