Вывод автоэнкодера свертки - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь создать сверточный автоэнкодер. На выходе я получаю 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()

enter image description here

Что мне нужно изменить в моей модели?

...