Я пытаюсь создать сверточный автоэнкодер. На выходе я получаю 5004 нейрона, но на входе у меня 5000 нейронов. Почему это происходит? У меня есть:
def create_deep_conv_ae():
input_signal = L.Input((5000, 12), name='model_input')
x = Conv1D(128, 9, activation='relu', padding='same')(input_signal)
x = MaxPooling1D(3, padding='same')(x)
x = Conv1D(64, 9, activation='relu', padding='same')(x)
x = MaxPooling1D(3, padding='same')(x)
encoded = Conv1D(1, 9, activation='relu', padding='same')(x)
input_encoded = L.Input(shape=(556, 1), name='encoder_input')
x = Conv1D(32, 9, activation='relu', padding='same')(input_encoded)
x = UpSampling1D(3)(x)
x = Conv1D(128, 9, activation='relu', padding='same')(x)
x = UpSampling1D(3)(x)
decoded = Conv1D(12, 9, activation='sigmoid', padding='same')(x)
# Модели
encoder = Model(input_signal, encoded, name="encoder")
decoder = Model(input_encoded, decoded, name="decoder")
autoencoder = Model(input_signal, decoder(encoder(input_signal)), name="autoencoder")
return encoder, decoder, autoencoder
c_encoder, c_decoder, c_autoencoder = create_deep_conv_ae()
c_autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
c_autoencoder.summary()
Что мне нужно изменить в моей модели?