首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何构建堆叠的序列到序列的自动编码器?

如何构建堆叠的序列到序列的自动编码器?
EN

Stack Overflow用户
提问于 2018-01-17 19:17:02
回答 1查看 865关注 0票数 0

在keras博客中:“在Keras中构建自动编码器”提供了以下代码来构建单序列到序列自动编码器

代码语言:javascript
复制
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)

我想构建堆叠式自动编码器,如何更新此代码来构建堆叠式自动编码器?

我自己试过,下面是我的代码:

代码语言:javascript
复制
timesteps = 3
input_dim = 1
inputs = Input(shape=(timesteps, input_dim))
encoded = LSTM(4)(inputs)
encoded = RepeatVector(timesteps)(encoded)
encoded = LSTM(2)(encoded)
encoded = RepeatVector(timesteps)(encoded)
decoded = LSTM(4,return_sequences = True)(encoded)
decoded = LSTM(input_dim,return_sequences = True)(decoded)

sequence_autoencoder = Model(inputs, decoded)

sequence_autoencoder.compile(loss='mean_squared_error', optimizer='Adam')

sequence_autoencoder.fit(x_train, x_train,
epochs=100,
batch_size=1,
shuffle=True,
)

我想知道,这段代码是正确的,还是我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 21:46:19

您创建的代码尝试遵循与您找到的示例相同的理念。但是您太快地销毁了这个序列(因此您最终使用了一个额外的RepeatVector )。

为了避免这种情况,您可以在所有编码层中使用return_sequences=True,最后一个编码层除外。这使序列保持为一个序列,允许更大的解释力,因为您不会太快地折叠数据。

代码语言:javascript
复制
#add return_sequences=True to all layers except for the last
encoded = LSTM(4, return_sequences=True)(inputs) 

#do not use RepeatVector, you've got your sequences preserved with their length

#the last encoder layer is the only one that collapses the sequence
encoded = LSTM(2)(encoded) 

#this RepeatVector is the only that is needed, to restore the sequence length
decoded = RepeatVector(timesteps)(encoded)

#the rest is the same
decoded = LSTM(4,return_sequences = True)(encoded)
decoded = LSTM(input_dim,return_sequences = True)(decoded)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48299833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档