A Convolutional Neural Network, CNN in short, is a deep learning neural network designed to process data in the form of arrays, such as the images. Theorized around the 1990s, this architecture became popular in 2012 when AlexNet, a CNN model, outclassed the other algorithms in the ImageNet Challenge. Since then, Convolutional Neural Networks have been widely used in computer vision and they have reached remarkable performances in many visual applications such as image classification. The model’s core is the convolutional layer which performs convolutional operations across the previous layer array or on the input. CNNs work well in the hypothesis of input translation invariance and local connectivity.