Build a Convolutional Network
Develop a Convolutional Neural Network (CNN) with Pytorch.
It is time to apply what we learned about CNNs through an assignment. We will build a fully functional CNN and train it with our familiar CIFAR10 dataset.
The CNN structure will be:
- A conv layer with 3 channels as input, 6 channels as output, and a 5x5 kernel
- A 2x2 max-pooling layer
- A conv layer with 6 channels as input, 16 channels as output, and a 5x5 kernel
- A linear layer with 1655 nodes
- A linear layer with 120 nodes
- A linear layer with 84 nodes
- A linear layer with 10 nodes
Don’t forget to add a Relu layer after each convolutional and linear layer, except the last one because that should output the actual classification.
Finally, let’s use Vanilla SGD once again with a learning rate of 0.001 and a momentum of 0.9, and the cross-entropy loss for our loss function. As you can see in the code, we will train the model in the entire dataset for 1 epoch.
You will need to write code in 5 different places:
- Define the layers in the CNN
__init__
. - Stack the layers in
forward
. - Define the loss and optimizer in
train
. - Get the Cifar10 image and label, inside the for-loop in
train
. - Run the forward and backward pass.
Get hands-on with 1400+ tech skills courses.