【发布时间】:2019-08-05 17:27:02
【问题描述】:
我有一个多层 LSTM 自动编码器,它的输入是一个 20 步的时间序列,有 4 个属性。
model = Sequential()
model.add(CuDNNLSTM(128, input_shape=(20, 4), return_sequences=True)) # encode 1
model.add(CuDNNLSTM(256, return_sequences=True)) # encode 2
model.add(CuDNNLSTM(512, return_sequences=True)) # encode 3 -- our final vector
model.add(CuDNNLSTM(256, return_sequences=True)) # decode 1
model.add(CuDNNLSTM(128, return_sequences=True)) # decode 2
model.add(TimeDistributed(Dense(4)))
model.compile(optimizer='adam', loss='mse')
当我将输出层设置为编码层 #3 时,输出的形状为 (1,20,512)。
如何从该层获取形状为 (1,512) 的向量,用作输入时间序列的学习表示?
我说形状是 (1,20,512) 是否正确,因为该层为每个时间步生成一个输出向量,在这种情况下我应该使用最后一个输出向量吗?
【问题讨论】:
标签: python keras deep-learning lstm autoencoder