Keras AE,具有分离解码器和编码器,但具有多个输入

2024-04-29 06:16:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在keras训练一个自动编码器。最后,我想有一个单独的编码器和解码器模型。我可以对像这样的普通AE执行此操作:https://blog.keras.io/building-autoencoders-in-keras.html

然而,我想训练模型的一个条件变量,在这里我将条件信息传递给编码器和解码器。(https://www.vadimborisov.com/conditional-variational-autoencoder-cvae.html

我可以很好地创建编码器和解码器:

# create the encoder
xIn = Input(shape=(100,), name="data_in")
conditional = Input(shape=(10, ), name='conditional')

modelInput = concatenate([xIn,conditional])
x = Dense(25,activation=activation)(modelInput)
xlatent = Dense(5,activation=activation)(x)

# create the encoder
cencoder = Model(inputs=[xIn,conditional],outputs=xlatent, name = "Encoder")
cencoder.summary()


latentState = Input(shape=(5,),name="latentInput")
conditional = Input(shape=(10,),name="conditional")

decoderInput = concatenate([conditional,latentState])
x = Dense(25,activation=activation)(decoderInput)
out = Dense(5,activation=activation)(x)

# create a decoder
cdecoder = Model(inputs=[xIn,conditional],outputs=out)
cdecoder.summary()

但现在要创建自动编码器,我需要执行以下操作:

encoded = encoder(input)
out = decoder(encoded)
AE = Model(encoded,out)

我该如何做这样的事情:

encoded = encoder([input,conditional])
out = decoder([encoded,conditional])
AE = Model(encoded,out)

不管我怎么尝试,它都会给我一个图形断开连接错误

谢谢


Tags: nameencoderinputmodel编码器out解码器activation
1条回答
网友
1楼 · 发布于 2024-04-29 06:16:43

考虑到两种模型的条件相同

这样做:

encoderInput = Input(shape=(100,), name="auto_data_in")
conditionalInput = Input(shape=(10, ), name='auto_conditional')

encoderOut = cencoder([encoderInput, conditionalInput])
decoderOut = cdecoder([encoderOut, conditionalInput])

AE = Model([encoderInput, conditionalInput], decoderOut)

相关问题 更多 >