Implementations of autoencoder, generative adversarial networks, variational autoencoder and adversarial variational autoencoder