J'essaye de construire un réseau LSTM en utilisant Keras. Mon exemple de série temporelle est de taille 492
. Et je veux utiliser les exemples précédents 3
pour prédire l'exemple suivant. Ainsi, l'entrée est convertie en taille (num_samples,3*492)
et la taille de sortie est (num_samples,492)
.Erreur de dimension de construction LSTM avec keras
Selon this blog, je tout d'abord convertir ma taille de données dans la forme (num_samples, Timesteps, caractéristiques)
#convert trainning data to 3D LSTM shape
train_origin_x = train_origin_x.reshape((train_origin_x.shape[0],3,492))
test_origin_x = test_origin_x.reshape((test_origin_x.shape[0],3,492))
print(train_origin_x.shape,test_origin_x.shape)
(216, 3, 492) (93, 3, 492)
print(train_origin_y,test_origin_y)
(216, 492) (93, 492)
Et ci-dessous est le mon code pour construire le réseau LSTM
#building network
model = Sequential()
model.add(LSTM(hidden_units,return_sequences=True,input_shape=(train_origin_x.shape[1],train_origin_x.shape[2])))
model.add(Dense(492))
model.compile(loss='mse',optimizer='adam')
print('model trainning begins...')
history = model.fit(train_origin_x,train_origin_y,epochs = num_epochs,batch_size = num_batchs,
validation_data=(test_origin_x,test_origin_y))
Cependant J'ai eu une erreur dans le processus, en disant
ValueError: Error when checking target: expected dense_1 to have 3 dimensions, but got array with shape (216, 492)
Toute personne Doit quel est le problème?
Tous les commentaires ou suggestions sont les bienvenus et appréciés !!
Ci-dessous est le résultat de model.summary()
model.summary()
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_1 (LSTM) (None, 3, 50) 108600
_________________________________________________________________
dense_1 (Dense) (None, 3, 492) 25092
=================================================================
J'ai essayé, mais toujours eu la même erreur @Paddy –
désolé mon mauvais, cochez la réponse, va travailler maintenant – Paddy