# vae variational autoencoder from scratch