NVAE: A Deep Hierarchical Variational Autoencoder

A deep VAE is trained, using a MobileNet-style architecture with separable convolutions and SE-Blocks. Various normalization techniques are required to keep the training stable, and the result is good for a VAE but mediocre compared with autoregressive, normalizing flows, and diffusion models.