 So, making GANs work is often consists of lots of different tricks. For example, people found that often normalizing the data to the interval of minus 1 to 1 is a good idea. People often find that using TANGE for the output of the generative model is helpful. They often find that sampling from a Gaussian as opposed to a uniform distribution makes things better. They often find that sorting by many batches where the whole many batch is either all real or it's all fake helps in convergence. They find that using ADAM in the generator and vanilla SGD in the discriminator is a good idea. They find that using CONVOLUTIONS is really good. They find that using DROPOUT in the generator is really good. Now, these are just tips and tricks. There's preciously little theory behind it, but a lot of these ideas seem important to making GANs work in practice. Now, the one thing though that is really useful is that CONVOLUTIONS are super useful. Why? CONVOLUTIONS mean that we have much fewer parameters. Much fewer parameters means that things will work much better in general in deep learning. Maybe the overarching principle or one of the overarching principles is fewer parameters is always hugely useful. Now, how does a CONVOLUTIONAL generator look like? We can take 100 Zs here. We then use CONVOLUTIONS and we will be in a bigger space. We will go from the 1D1 to like a 4x4 and then we go to 8x8, we go 16x16, 32x32, 64x64 and so on and so forth. By making it bigger and bigger as we go through these steps in a CONVOLUTIONAL GAN we will use fewer parameters to produce good images. Just a reminder from earlier on in Tutorial 1 we will be using TRANSPOSE CONVOLUTIONS which allow us to go from LOWER DIMENSIONAL SPACES into HIGHER DIMENSIONAL SPACES. I should also mention even when it comes to this, there's TRICKS. We will for example, when we use this approach, often see CHECK ABOUT PATTERNS. And there are opportunities to use UPSAMPLING and CONVOLUTIONS instead but those are just details. Like I want you to really understand the logic of GANs. Now let us make our GAN CONVOLUTIONAL. We'll give us fewer parameters, better generalization and in general as we will see better images. We build a CONVOLUTIONAL GAN.