Implementing a deep CNN using PyTorch
In Chapter 13, as you may recall, we solved the handwritten digit recognition problem using the torch.nn
module. You may also recall that we achieved about 95.6 percent accuracy using an NN with two linear hidden layers.
Now, let’s implement a CNN and see whether it can achieve a better predictive performance compared to the previous model for classifying handwritten digits. Note that the fully connected layers that we saw in Chapter 13 were able to perform well on this problem. However, in some applications, such as reading bank account numbers from handwritten digits, even tiny mistakes can be very costly. Therefore, it is crucial to reduce this error as much as possible.
The multilayer CNN architecture
The architecture of the network that we are going to implement is shown in Figure 14.12. The inputs are 28×28 grayscale images. Considering the number of channels (which is 1 for grayscale images) and a batch of input...