2017-05-06 35 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) 
相關問題