Creating the network from TensorFlow 2
Now that we've downloaded the CIFAR-10 dataset, split it into test and training data, and reshaped and rescaled it, we are ready to start building our VAE model. We'll use the same Model API from the Keras module in TensorFlow 2. The TensorFlow documentation contains an example of how to implement a VAE using convolutional networks (https://www.tensorflow.org/tutorials/generative/cvae), and we'll build on this code example; however, for our purposes, we will implement simpler VAE networks using MLP layers based on the original VAE paper, Auto-Encoding Variational Bayes13, and show how we adapt the TensorFlow example to also allow for IAF modules in decoding.
In the original article, the authors propose two kinds of models for use in the VAE, both MLP feedforward networks: Gaussian and Bernoulli, with these names reflecting the probability distribution functions used in the MLP network outputs in their finals layers The Bernoulli...