Как избавиться от пробелов в скрытом пространстве с помощью вариационного автоэнкодера на fashion_mnist - PullRequest
0 голосов
/ 03 февраля 2020

У меня вопрос по поводу вариационного автоэнкодера. Я использовал этот код (http://louistiao.me/listings/vae/variational_autoencoder.py.html) и изменил 2 "из keras.datasets import mnist" на "из keras.datasets import fashion_mnist", чтобы использовать fashion_mnist в качестве набора данных.

Теперь У меня проблема в том, что я не удовлетворен результатом в скрытом пространстве. Между разными классами есть пробелы (см. Рис. 1).

Рисунок 1: Результат с исходной архитектурой

Затем я добавил два дополнительных слоя в кодер и декодер и получил результат, где промежутки меньше (см. рис. 2)

Рисунок 2: Результат с изменениями Архитектура .

Здесь Вы можете увидеть, как я кодирую дополнительный уровень:

decoder = Sequential()
decoder.add(Dense(intermediate_dim2, input_dim = latent_dim, activation='relu'))
decoder.add(Dense(intermediate_dim1, input_dim = intermediate_dim2, activation='relu'))
decoder.add(Dense(intermediate_dim, input_dim = intermediate_dim1, activation='relu'))
decoder.add(Dense(original_dim, activation='sigmoid'))

#Encoder Architecture
x = Input(shape=(original_dim,))
h = Dense(intermediate_dim, activation='relu')(x)
h = Dense(intermediate_dim1, activation='relu')(h)
h = Dense(intermediate_dim2, activation='relu')(h)

z_mu = Dense(latent_dim)(h)
z_log_var = Dense(latent_dim)(h)

z_mu, z_log_var = KLDivergenceLayer()([z_mu, z_log_var])
z_sigma = Lambda(lambda t: K.exp(.5*t))(z_log_var)

, поэтому, сравнивая Рис. 1 с Рис. 2, мы видим меньше пробелов. У меня вопрос: есть ли лучший способ избавиться от пробелов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...