got a sweet variational autoencoder working, now adding semi-supervised magic