Luckily, all we have to do is define a convolutional network and reshape our training arrays to the appropriate dimensions to test out how it performs with respect to the task at hand. Thus, we will import some convolutional, MaxPooling, and UpSampling layers, and start building the network. We define the input layer and provide it with the shape of our 64 x 64 colored images. Then, we simply alternate the convolutional and pooling layers until we reach the latent space, which is represented by the second MaxPooling2D layer. The layers leading away from the latent space, on the other hand, must be alternating between convolutional layers and UpSampling layers. The UpSampling layer, as the name suggests, simply increases the representational dimension by repeating the rows and columns of the data from the previous layer:
from keras.layers import...