A PyTorch CNN exploration, detailing AlexNet and training on CIFAR10. We adjust hyperparameters and visualize with saliency maps to understand neural decisions.
This Jupyter notebook is a comprehensive exploration into the workings of Convolutional Neural Networks (CNNs) using PyTorch. It begins with a detailed walkthrough of AlexNet's architecture, one of the pioneering models in deep learning for visual recognition tasks. We delve into each layer of the network, examining input and output shapes, and quantifying the parameters involved in both feature extraction and classification stages.
In the second part, we embark on a hands-on journey to train a CNN on the CIFAR10 dataset. The process is iterative and educational—we tweak various hyperparameters, including network depth, batch size, and learning rates, to observe their impacts on model performance. Each modification is backed by intuition and practical results, providing a rich learning experience on optimizing neural networks.
The notebook culminates with an intriguing section on visualizations, where we generate saliency maps for a pre-trained AlexNet. These visualizations offer a window into the model's decision-making process, highlighting the areas within an image that influence the network's classifications.
This resource is perfect for those who wish to see theory put into practice and for anyone curious about the inner workings of CNNs. It's a blend of theory, application, and introspection into model behavior, making it an essential guide for both beginners and experienced practitioners in the field of deep learning.