Below is a typical code for creating Encoder-Decoder LSTM with a single layer. Source is here. You can assume a single feature and many to one architecture.
model.add(LSTM(units, input_shape=(n_input, n_features),dropout=rdo, activation = keras.layers.LeakyReLU(alpha=0.2)))
model.add(RepeatVector(1))
model.add(LSTM(units, activation = keras.layers.LeakyReLU(alpha=0.2), return_sequences=True, dropout=rdo))
model.add(TimeDistributed(Dense(100, activation = keras.layers.LeakyReLU(alpha=0.2))))
model.add(TimeDistributed(Dense(n_features)))
Considering the fact that the first LSTM Layer (encoder) has no argument return_state=True, in the above code, then:
1- My understanding is that only the encoder final hidden state will be the output of the first LSTM layer and this will go through the RepeatVector layer, and enter the decoder LSTM layer as input to its first LSTM Cell (Please correct me if I am wrong)?.
2- What are the initial values of the hidden state and cell state in the decoder LSTM cell in this case? Will it be set to zero? If so, did not we lose important information from the encoder like the cell state?