如何解决如何构建RNN网络以将输入时间序列镜像到输出层?
我想建立一个递归神经网络(RNN)自动编码器,特别是使用SimpleRNN和LSTM,将输入时间序列镜像到输出层。我有由几个变量(n_features)(n_samples x n_features)数组的n_samples组成的时间序列。 自动编码器的拓扑应为: n_features >>> n_features / 2 >>> n_features我首先将数据分为训练和测试数据集(前80%用于训练,其余用于测试和验证)。 然后创建了TimeseriesGenerator对象以用于模型拟合:
n_lag = 10 # number of lag in time steps
batch_size = 1 # number of timeseries samples in each batch
generator = TimeseriesGenerator(scaled_x_train,scaled_x_train,length=n_lag,batch_size=batch_size)
validation_generator = TimeseriesGenerator(scaled_x_train,batch_size=batch_size)
然后我按如下所示创建模型:
encoder = Sequential()
encoder.add(LSTM(4,activation = 'tanh',input_shape = (n_lag,n_features),return_sequences = False))
encoder.add(RepeatVector(int(n_features/2)))
decoder = Sequential()
decoder.add(LSTM(4,return_sequences=True))
decoder.add(TimeDistributed(Dense(n_features)))
autoencoder = Sequential([encoder,decoder])
autoencoder.fit(generator,epochs=3,validation_data = validation_generator)
但是模型并不像预期的那样运作,因为我担心问题出在输入和输出数据的尺寸以及它们与SimpleRNN和LSTM层中n_units的关系上。
关于如何构建具有多输入/多输出时间序列的自动编码器,我可以获得任何帮助吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。