
9.8 Autoencodeurs variationnels
349
© Dunod – Toute reproduction non autorisée est un délit.
def __init__(self, weight, target=0.1):
self.weight = weight
self.target = target
def __call__(self, inputs):
mean_activities = K.mean(inputs, axis=0)
return self.weight * (
kl_divergence(self.target, mean_activities) +
kl_divergence(1. - self.target, 1. - mean_activities))
Nous pouvons maintenant construire l’autoencodeur épars, en utilisant le
KLDivergence Regularizer pour les activations de la couche de codage :
kld_reg = KLDivergenceRegularizer(weight=0.05, target=0.1)
sparse_kl_encoder = keras.models.Sequential([
keras.layers.Flatten(input_shape=[28, ...