首页 > 解决方案 > spyder 和 jupyter 中的 Keras(Tensorflow) LSTM 错误

问题描述

当我使用 google colab 时,代码中没有错误

但是当我使用 spyder 或 jupyter 时,就会发生错误。

Model_10 = Sequential()
Model_10.add(LSTM(128, batch_input_shape = (1,10,5), stateful = True))
Model_10.add(Dense(5, activation = 'linear'))

Model_10.compile(loss = 'mse', optimizer = 'rmsprop')

Model_10.fit(x_train, y_train, epochs=1, batch_size=1, verbose=2, shuffle=False, callbacks=[history])

x_train_data.shape = (260,10,5)

y_train_data.shape = (260,1,5)

我正在使用 python3.7 和 tensorflow 2.0 我不知道为什么错误只发生在 anaconda 中。

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ</p>

错误代码

ValueError: 形状为 (260, 1, 5) 的目标数组被传递为形状为 (1, 5) 的输出,同时用作 loss mean_squared_error。这种损失期望目标具有与输出相同的形状。

标签: tensorflowkerasanacondalstm

解决方案


你应该重塑你的标签/目标:

y_train_data = y_train_data.reshape((260,5))

由于您batch_input_shape在输入层中使用并指定批量大小为 1,因此模型将在每个步骤中从您的标签中提取一个示例,无论如何标签的形状均为 (1, 5)。


推荐阅读