У меня есть:
self.model.add(Bidirectional(LSTM(lstm1_size, input_shape=(
seq_length, feature_dim), return_sequences=True)))
self.model.add(BatchNormalization())
self.model.add(Dropout(0.2))
self.model.add(Bidirectional(
LSTM(lstm2_size, return_sequences=True)))
self.model.add(BatchNormalization())
self.model.add(Dropout(0.2))
# BOTTLENECK HERE
self.model.add(Bidirectional(
LSTM(lstm3_size, return_sequences=True)))
self.model.add(BatchNormalization())
self.model.add(Dropout(0.2))
self.model.add(Bidirectional(
LSTM(lstm4_size, return_sequences=True)))
self.model.add(BatchNormalization())
self.model.add(Dropout(0.2))
self.model.add(Dense(feature_dim, activation='linear'))
Однако я хочу настроить autoencoder
-подобную настройку без необходимости иметь 2 отдельные модели. Там, где у меня есть комментарий BOTTLENECK HERE
, я хочу иметь вектор некоторого измерения, скажем, bottleneck_dim
.
. После этого должны быть некоторые слои LSTM, которые затем восстанавливают последовательность того же размера, что и начальный вход. Однако я считаю, что добавление слоя Dense
не вернет один вектор, а вместо этого вернет векторы для каждой длины последовательности?