Keras Variational Autoencoder, который декодирует для распределения вместо образца - PullRequest
0 голосов
/ 12 апреля 2020

Если я правильно понял, есть два подхода к реализации сети декодера вариационного автоэнкодера (VAE). Первый подход - это декодер, который генерирует реконструкцию входной выборки сети, а другой подход - это декодер, который пытается генерировать распределение. Эти подходы описаны здесь .

Я реализовал первый подход, в котором я генерирую реконструкцию, однако при поиске примеров реализации VAE я могу найти только первый подход. Кто-нибудь знает примеры реализации с использованием Keras?

Я ожидал бы иметь декодер, который выглядит следующим образом:

def create_decoder():
    decoder_input = layers.Input(latent_dim, name='decoder_input')
    x = decoder_input
    x = layers.Dense(hiden_layer_dim, activation='relu', name='Dense_1')(x)
    x = layers.Dense(hiden_layer_dim, activation='relu', name='Dense_2')(x)
    z_mean = layers.Dense(latent_dim, name='z_mean')(x)
    z_log_variance = layers.Dense(latent_dim, name='z_log_variance')(x)
    decoder = Model(inputs=decoder_input, outputs=[z_mean, z_log_variance])
    decoder.summary()
    return decoder

В этом случае, как следует модифицировать функцию потерь?

...