2017-05-06 34 views
1

我正在处理这个示例,但对如何制作单独的解码器模型感到困惑。制作序列的解码器模型以在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) 

我明白如何制作编码器,但我们如何制作单独的解码器?我可以定义所有图层并分别制作编码器和解码器,但是有没有像我们使用编码器模型那样更简单的方法来完成它?

+0

你可以尝试只:'解码器=模型(encoder.output,解码)'(从来没有尝试过,但我会用我所知道的工作添加一个答案) –

回答

1

创建编码器:

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) 
相关问题