#My shape is not right

5 messages · Page 1 of 1 (latest)

jade valve
#

Hello guys, I might need some help 😦

I have this model which takes 60 samples and makes 3 predictions per batch as follows:

X_train = []
y_train = []
for i in range (60,training_set.shape[0]-PREDICT_PERIOD): 
    X_train.append(scaled_training_set[i-60:i, 0])
    y_train.append(scaled_training_set[i:i+PREDICT_PERIOD, 0])
X_train = np.array (X_train)
y_train = np.array (y_train)

print(X_train.shape) # (1047, 60)
print(y_train.shape) # (1047, 3)

X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1)) # (1047, 60, 1)

(here i have my training set construction, where PREDICT_PERIOD is 3

Then i have my regressor defined like

regressor = Sequential ()
regressor.add(LSTM(units = 50, return_sequences= True, input_shape = (X_train.shape[1], 1)))
regressor.add(Dropout (0.2))
regressor.add(LSTM(units = 50, return_sequences= True))
regressor.add(Dropout (0.2))
regressor.add(LSTM(units = 50, return_sequences= True))
regressor.add(Dropout (0.2))
regressor.add(LSTM(units = 50))
regressor.add(Dropout (0.2))
regressor.add(Dense (units=1))

regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
regressor.fit(X_train, y_train, epochs=100, batch_size=32)

But when I make a prediction:

print(X_test.shape) # (1, 60, 1)
y_test = regressor.predict(X_test)
print(y_test.shape) # (1, 1)
y_test = scaler.inverse_transform(y_test)
print(y_test.shape) # (1, 1)

And I am expecting my shape to be (1, 3) instead

quiet gyro
#

try use regressor.add(Dense (units=3)) instead of regressor.add(Dense (units=1))

jade valve
#

Thank you, that fixed the issue!

quiet gyro
#

I want to be a friend with you.

#

Will you accept my invitation?