PyTorch Models and CNN Theory — Part 1
INTRODUCTION
In workshop 2 of this series, we introduced PyTorch, and showed you how to create datasets, data loaders, and bind it all together into a training and validation loop. Now, we want to extend the power of our models by introducing CNNs to recognise patterns in visual data.
Using Pytorch, we can define our own models, which gives us much more flexibility and options. One of the types of models we can create is a Convolutional Neural Network (CNN). CNNs are perhaps the most famous type of neural network, as they form the basis of most image classification models.
The core part of a CNN is a convolutional layer, which extracts features from visual data. The idea is that these convolutional layers are stacked on top of each other, to extract increasingly complex information. Don’t worry, we go into this in more detail later.
This workshop is split into two articles. First up we’ll discuss the theory behind how convolutional neural networks work and afterwards we’ll see how to implement them in PyTorch.
CNNs are also perhaps one of the more controversial neural networks, as companies and researchers start to create facial recognition and other tools whose implications on free speech and protesting in countries with harsh or authoritarian regimes are still yet to be seen. However, when used for the right reasons, CNN’s are an extremely useful tool, and a great entry point into deep learning.