Keras 神经网络能否基于其他时间序列预测时间序列?

Keras 神经网络能否基于其他时间序列预测时间序列?,keras,neural-network,time-series,conv-neural-network,Keras,Neural Network,Time Series,Conv Neural Network,我想根据两个不同的时间序列X2和X3预测一个包含n个点的时间序列X1,每个时间序列也包含n个点。这些时间序列相互作用,所以我希望使用与组合图像类似的方法来生成另一个图像 到目前为止,我已经成功地实现了一个自动编码器来学习和返回所有时间序列(X1、X2、X3)。当我试图建立一个神经网络,仅使用X2和X3预测X1(3000个单位)时,模型没有编译,我得到一个错误: Error when checking target: expected sequential_9 to have 2 dimensio

我想根据两个不同的时间序列X2和X3预测一个包含n个点的时间序列X1,每个时间序列也包含n个点。这些时间序列相互作用,所以我希望使用与组合图像类似的方法来生成另一个图像

到目前为止,我已经成功地实现了一个自动编码器来学习和返回所有时间序列(X1、X2、X3)。当我试图建立一个神经网络,仅使用X2和X3预测X1(3000个单位)时,模型没有编译,我得到一个错误:

Error when checking target: expected sequential_9 to have 2 dimensions, but got array with shape (61, 3000, 1, 1)
在不同的组合中,它在
展平\ux
密集\ux
处断裂。 如果我的输出只有一个单位,而不是3000,它就可以工作

我尝试的网络将具有以下层:

Layer (type)                 Output Shape              Param #   
=================================================================
input_8 (InputLayer)         (None, 3000, 2, 1)        0         
_________________________________________________________________
conv2d_10 (Conv2D)           (None, 3000, 2, 32)       96        
_________________________________________________________________
max_pooling2d_7 (MaxPooling2 (None, 1500, 2, 32)       0         
_________________________________________________________________
flatten_7 (Flatten)          (None, 96000)             0         
_________________________________________________________________
dense_6 (Dense)              (None, 3000, 1, 32)                
下面是我用来创建网络的代码:

network = Sequential((
    Conv2D(filters=32, kernel_size=(1,2), activation='relu', input_shape=(x, y, inChannel)),
    MaxPooling2D(pool_size = (2, 1)),
    Flatten(),
    Dense(3000, activation='relu'),
))
network.compile(loss='mean_squared_error', optimizer = RMSprop())
输入具有形状(61、3000、2、1)

我是否应该在某个地方指定预期的输入/输出,而我没有这样做?在途中进行一些数据转换?也许使用不同的架构


谢谢你的建议

您编码的网络没有您想要的架构

如果你打印出来

network.summary()
你得到

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_6 (Conv2D)            (None, 3000, 1, 32)       96        
_________________________________________________________________
max_pooling2d_6 (MaxPooling2 (None, 1500, 1, 32)       0         
_________________________________________________________________
flatten_6 (Flatten)          (None, 48000)             0         
_________________________________________________________________
dense_6 (Dense)              (None, 3000)              144003000 
=================================================================
Total params: 144,003,096
Trainable params: 144,003,096
Non-trainable params: 0

因此,您必须更改架构以获得所需的输出形状