there you apply it running grayscale so on and now you take it out you pass it to the model and the model itself could be stochastic it could have drop out so every forward pass could give you a different output even for the same image and you get two different latent variables for these different we'll turn the input down in the model so every time you make a forward pass you label data you can enforce it regularly the supervised crossing could be lost and if you throw unlabeled data you can enforce the square or square