ループを実行するLambda
関数を呼び出すKerasのconnection
レイヤーを書き込もうとしています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]
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)