InvalidArgumentError:不兼容的形状:使用TimeseriesGenerator时的[490]与[500]

时间:2020-07-08 18:49:32

标签: python tensorflow keras lstm

我想出了错误消息

InvalidArgumentError:不兼容的形状:[490]与[500] [[{{node training_10 / Adam / gradients / loss_14 / dense_39_loss / mean_squared_error / weighted_loss / mul_grad / Mul_1}}]]

并且我在多个来源中都看到了此类问题,但是这些修复程序都不适用于我。到目前为止,我尝试使用不同版本的keras定义自定义损失函数,并添加了Flatten()。

我有X.shape(1575500,40)和Y.shape(1575500,1),目标是建立具有10个时间步长和40个特征的时间序列LSTM预测模型。

n_input = 10 #timesteps
generator = TimeseriesGenerator(X, Y, length=n_input, batch_size=500)

lstm = Sequential()

lstm.add(LSTM(64, 
              batch_input_shape =(500, 10, 40), #(batch_size, timesteps, features)
              activation = 'tanh', 
              stateful=True, 
              return_sequences=True))
lstm.add(Dropout(0.5))

lstm.add(Dense(32, activation = 'tanh'))
lstm.add(Dropout(0.5))

lstm.add(Flatten())
lstm.add(Dense(1, activation='linear')) 

lstm.compile(loss='mse', optimizer = 'Adam', metrics = ['mse']

lstm.fit_generator(generator, epochs = 10)

您能帮助我理解并修复我的模型吗?

0 个答案:

没有答案