首页 > 解决方案 > 堆叠卷积和 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:尺寸必须相等,但对于 '{{node mean_squared_error/SquaredDifference}} = SquaredDifference[T=DT_FLOAT](sequential_9/dense_9/BiasAdd, IteratorGetNext:1)' 输入形状为 200 和 99:[?,200] , [?,99]。

适合的代码是:

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

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

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

标签: pythontensorflowkerasconv-neural-networklstm

解决方案


推荐阅读