在LSTM中关闭Return_Sequence后如何解决尺寸问题?

时间:2019-10-26 18:47:05

标签: python keras lstm

我是Keras的初学者,想修改此代码。但是,我收到有关输出尺寸的错误。

这是正常工作的代码的一部分:

model.add(LSTM(64,return_sequences=True,input_shape=(tr_in.shape[1],tr_in.shape[2])))
model.add(Dense(1, activation='linear'))

model.compile(loss='mse', optimizer='adam')
model.fit(tr_in, tr_out,validation_data=(val_in, val_out))

训练和验证输入和输出矩阵是3D。 我想关闭“返回顺序”。但是我收到如下错误:

  

ValueError:检查目标时出错:预期density_3具有2   尺寸,但数组的形状为(100,16,1)。

1 个答案:

答案 0 :(得分:0)

我相信发生的事情是,当您将return_sequences从True更改为False时,您正在将LSTM层的输出减小为二维-特别是在处理所有时间步结束时只有一个输出。现在这与拟合期望值冲突,因为“目标”数据(tr_out)是3D。我相信return_sequences = True每个时间步输出一个结果,在您的情况下,每个样本似乎有16个时间步。我认为当return_sequences = False时,您需要使tr_out尺寸匹配(成为2D)。我希望这会有所帮助。

相关问题