Данная нейронная сеть восстанавливает входное изображение из "скрытого" состояния. Таким образом, на выходе получается новое изображение. Алгоритм оптимизации: Adam. Функция ошибки выглядит так:

def loss(y, z): y = K.reshape(y, shape = (batch_size, 2828)) z = K.reshape(z, shape = (batch_size, 2828)) mse = K.sum(K.square(y - z), axis = 1) kl = -.5 * K.sum(1 + loss_z_log_var - K.square(loss_z_mean) - K.exp(loss_z_log_var), axis = 1)

return mse

Длина тренировочного и тестового датасетов: 60000 и 10000 соответственно. Потери в процессе обучения: