In Keras, how to get 3D input and 3D output for LSTM layers In my original setting, I got

X1 = (1200,40,1)
y1 = (1200,10)


Then, I work perfectly with my codes:

model = Sequential()
model.add(LSTM(12, input_shape=(40, 1), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense(10)))


Now, I further got another time series data same sizes as X1 and y1. i.e.,

X2 = (1200,40,1)
y2 = (1200,40)


Now, I stack X1, X2 and y1, y2 as 3D arrays:

X_stack = (1200,40,2)
y_stack = (1200,40,2)


Then, I try to modify my keras code like:

model = Sequential()
model.add(LSTM(12, input_shape=(40, 2), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense((10,2))))


I want my code work directly with the 3D arrays X_stack and y_stack without reshaping them as 2D arrays. Would you give me a hand on how to modify the settings? Thank you.
Add another dimension to represent the number of time steps.

From Keras documentation on recurrent layers:


  if return_sequences: 3D tensor with shape  (batch_size, timesteps,
  units).


Something like this:

model = Sequential()
model.add(LSTM(12, input_shape=(40, 10, 3), return_sequences=True))