A Convolutional Neural Network (CNN) implementation for image classification using the CIFAR-10 dataset with PyTorch.
- Custom
FlexibleCNNarchitecture with configurable layers, filters, and dropout - Training and evaluation utilities with comprehensive metrics
- Feature map visualization to understand CNN layer activations
- Hyperparameter ablation study (learning rate, batch size, filters, layers)
- Confusion matrix and per-class performance analysis
image-classification-cnn/
├── cifar10_cnn.ipynb # Main notebook with implementation
├── RESULTS.md # Detailed results and ablation study
├── requirements.txt # Python dependencies
└── README.md
pip install -r requirements.txtOpen cifar10_cnn.ipynb in Jupyter Notebook or JupyterLab and run all cells.
The notebook will:
- Load CIFAR-10 from Hugging Face datasets
- Build and train a baseline CNN model
- Evaluate with confusion matrix and classification metrics
- Visualize feature maps from convolutional layers
- Perform ablation study on hyperparameters
FlexibleCNN(
Conv2d(3, 32, kernel_size=3, padding=1) -> ReLU -> MaxPool2d
Conv2d(32, 64, kernel_size=3, padding=1) -> ReLU
Flatten -> Dropout(0.5) -> Linear(512) -> ReLU -> Dropout(0.5) -> Linear(10)
)
See RESULTS.md for detailed performance metrics and ablation study findings.
Quick summary: Achieved 78.54% accuracy on CIFAR-10 test set with optimized hyperparameters.
MIT License - Ali Hamza Azam, 2025