堆叠卷积和 LSTM 层的问题

时间:2021-05-05 21:54:43

标签: python tensorflow keras conv-neural-network lstm

我正在尝试使用神经网络根据过去的回报预测未来 200 天的股票回报。我已经实现了由几个 LSTM 层组成的网络,并且工作正常:

lstm2=Sequential([
LSTM(50,input_shape=[None,1],return_sequences=True),
Dropout(0.2),
LSTM(50,return_sequences=True),
Dropout(0.2),
LSTM(50),
Dense(200)
])

但是,当我尝试在 LSTM 层之上堆叠 CONV1D 层时:

lstm_conv=Sequential([
Conv1D(filters=50,kernel_size=4,padding='valid',input_shape=[None,1]),
LSTM(50,return_sequences=True),
LSTM(50),
Dense(200)
])

我的合身错误:

ValueError: Dimensions must be equal, but is 200 and 99 for '{{node mean_squared_error/SquaredDifference}} = SquaredDifference[T=DT_FLOAT](sequential_9/dense_9/BiasAdd, IteratorGetNext:1)' 输入形状:[? ,200], [?,99]。

适合的代码是:

lstm_conv.fit(xtrain,ytrain[:,3::2],epochs=10,validation_data=(xval,yval[:,3::2]))

我的火车 X 输入的形状是 (1557, 20, 1),即我有 1557 个火车实例,每个实例都可以追溯到 20 并且每次有一个步骤(该系列是单变量)。对于 y,它是 (1557, 200)

我不知道如何解决这个问题,我已经浏览了互联网上的几个线程,但找不到类似的问题。将不胜感激任何帮助。

0 个答案:

没有答案
相关问题