繁体   English   中英

Keras:具有多个参数的 Lambda 层函数

[英]Keras: Lambda layer function with multiple parameters

我正在尝试在 Keras 中编写一个调用函数connectionLambda层,它运行一个循环for i in range(0,k) ,其中k作为函数connection(x,k)的输入。 现在,当我尝试调用 Functional API 中的函数时,我尝试使用:

k = 5
y = Lambda(connection)(x)

还,

y = Lambda(connection)(x,k)

但这些方法都没有奏效。 如何在不将其分配为全局参数的情况下输入k的值?

只需使用

y = Lambda(connection)((x,k)) 

然后是连接方法中的var[0]、var[1]

此 GitHub Pull Request中找到了问题的解决方案。 使用

y = Lambda(connection, arguments={'k':k})(x)

成功了!

Tmodel = Sequential()
x = layers.Input(shape=[1,])   # Lambda on single input
out1 = layers.Lambda(lambda x: x ** 2)(x)

y = layers.Input(shape=[1,])   # Lambda on multiple inputs
z = layers.Input(shape=[1,])
def conn(IP):
    return IP[0]+IP[1]
out2 = layers.Lambda(conn)([y,z])

Tmodel = tf.keras.Model(inputs=[x,y,z], outputs=[out1,out2],name='Tmodel')  # Define Model
Tmodel.summary()

# output
O1,O2 = Tmodel([2,15,10])
print(O1)   # tf.Tensor(4, shape=(), dtype=int32)
print(O2)   # tf.Tensor(25, shape=(), dtype=int32)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM