Keras中的循环自动编码器

Keras中的循环自动编码器,keras,rnn,autoencoder,Keras,Rnn,Autoencoder,有人提出了类似的问题。但我的问题不同 我正在尝试构建一个RNN自动编码器,如下所示。 基本上,编码器和解码器都是DNN。RNN将所有编码结果作为时间序列。权值在编码器和解码器之间相应地共享 问题:我知道如何构建自动编码器,但不知道如何在嵌入层中实现RNN 这是我的自动编码器代码: def自动编码器(adj): h、 w=调整形状 kwargs=dict( 使用_bias=True, kernel\u initializer='glorot\u normal', 核正则化器=无, 偏差\u初始值

有人提出了类似的问题。但我的问题不同

我正在尝试构建一个RNN自动编码器,如下所示。

基本上,编码器和解码器都是DNN。RNN将所有编码结果作为时间序列。权值在编码器和解码器之间相应地共享

问题:我知道如何构建自动编码器,但不知道如何在嵌入层中实现RNN

这是我的自动编码器代码:

def自动编码器(adj): h、 w=调整形状 kwargs=dict( 使用_bias=True, kernel\u initializer='glorot\u normal', 核正则化器=无, 偏差\u初始值设定项='零', 偏差\正则化器=无, 可训练的, ) 数据=输入(shape=(w,),dtype=np.float32,name='data') 噪声_数据=辍学(速率=0.5,name='drop0')(数据) 编码=密集(256,激活='relu',名称='encoded1',**kwargs)(嘈杂的数据) 已编码=密集(128,活动='relu',名称='encoded2',**kwargs)(已编码) 编码器=模型([数据],编码) encoded1=encoder.get_层('encoded1') encoded2=encoder.get_层('encoded2') ###需要RNN(LSTM)将h编码结果作为时间序列 decoded=DenseTied(256,tie_to=encoded2,transpose=True,acitvation='relu',name='decoded2')(编码) decoded=DenseTied(w,tie_to=encoded1,transpose=True,activation='relu',name='decoded1')(已解码) #编译自动编码器 adam=优化器。adam(lr=0.001,衰减=0.0) 自动编码器=模型(输入=[数据],输出=[解码]) 编译(优化器=adam,loss=mbce) 返回编码器,自动编码器