Да. Вы можете иметь любую форму в качестве выходного слоя. Например, авто-кодеры будут иметь ту же форму вывода, что и форма ввода.
Пример игрушки:
sequence_length = 20
n_features = 4
def make_model():
inp = Input(shape=(sequence_length, n_features,))
encoder = LSTM(16, return_sequences=True)(inp)
vector = LSTM(32)(encoder)
decoder_in = RepeatVector(sequence_length)(vector)
decoder = LSTM(16, return_sequences=True)(decoder_in)
out = Dense(4)(decoder)
model = Model(inp, out)
model.compile('adam', 'mse')
return model
model = make_model()
model.summary()
В этом случае слой vector
имеет форму (32,) (т.е. происходит уменьшение размерности по сравнению с входом), а выходной слой имеет те же размеры, что и вход.