制作序列的解码器模型以在Keras中对自动编码器进行排序
问题描述:
我正在处理这个示例,但对如何制作单独的解码器模型感到困惑。制作序列的解码器模型以在Keras中对自动编码器进行排序
from keras.layers import Input, LSTM, RepeatVector
from keras.models import Model
inputs = Input(shape=(timesteps, input_dim))
encoded = LSTM(latent_dim)(inputs)
decoded = RepeatVector(timesteps)(encoded)
decoded = LSTM(input_dim, return_sequences=True)(decoded)
sequence_autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)
我明白如何制作编码器,但我们如何制作单独的解码器?我可以定义所有图层并分别制作编码器和解码器,但是有没有像我们使用编码器模型那样更简单的方法来完成它?
答
创建编码器:
inputs = Input(shape=(timesteps, input_dim))
encoded = LSTM(latent_dim)(inputs)
encoder = Model(inputs, encoded)
创建解码器:
decInput = Input((the shape of the encoder's output))
decoded = RepeatVector(timesteps)(decInput)
decoded = LSTM(input_dim, return_sequences=True)(decoded)
decoder = Model(decInput,decoded)
加盟模式:
joinedInput = Input(shape=(timesteps, input_dim))
encoderOut = encoder(joinedInput)
joinedOut = decoder(encoderOut)
sequence_autoencoder = Model(joinedInput,joinedOut)
你可以尝试只:'解码器=模型(encoder.output,解码)'(从来没有尝试过,但我会用我所知道的工作添加一个答案) –