This repository focuses on classifying images from the CIFAR-100 dataset using convolutional neural networks (CNNs) built with the PyTorch library. The CIFAR-100 dataset is a challenging benchmark for image classification, containing 100 diverse classes grouped into 20 superclasses.
- Training and Testing Images: Each class contains 500 training images and 100 testing images.
- Classes and Superclasses: The dataset includes 100 fine-grained classes, further grouped into 20 broader superclasses.
- Labeling:
- Fine labels: Specify the exact class of the image.
- Coarse labels: Indicate the superclass to which the image belongs.
- Dataset Division: The training dataset is divided into two subsets:
- A sub-training set.
- A validation set (20% of the training data).
- Fine Label Prediction: The model is designed to predict the fine labels (class) rather than the coarse labels (superclass).
- Model Experimentation:
- Experiment with various activation functions, optimizers, hyperparameters, and architectures.
- Model Selection:
- Identify the top three models based on performance on the validation set.
- Full Training:
- Retrain the top three models using the entire training dataset.
- Accuracy Testing:
- Evaluate and compare test accuracy for each model.
- Benchmarking:
- Compare model performance against others on the CIFAR-100 leaderboard (considering only models without additional training data).
- Reporting:
- Provide a detailed report covering:
- Activation functions, optimizers, hyperparameters, and architectures used.
- Test accuracy results.
- Benchmarking outcomes.
- Total number of parameters for each model.
- Provide a detailed report covering: