Skip to content

Developed, Trained, and Deployed a Convolutional Neural Network (CNN) based around image classification trained on the CIFAR-10 Dataset

License

Notifications You must be signed in to change notification settings

AaTekle/CIFAR10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CIFAR-10 Image Classifier

Creator: Aaron Tekle

Project Overview

End-to-end development of a Convolutional Neural Network (CNN) for classifying images into one of the ten classes in the CIFAR-10 dataset. The relevant classes include airplanes, automobiles, birds, cats, deers, dogs, frogs, horses, ships, and trucks.

Model Development and Training

Creation

CNN model was designed with a focus on extracting and learning the most relevant features from the CIFAR-10 dataset's images. The architecture comprises several key components:

  • Convolutional Layers: To automatically identify features within the images.
  • Pooling Layers: To reduce the dimensionality of the feature maps, thus simplifying the network.
  • Dropout Layers: To prevent overfitting by randomly dropping units from the neural network during training.
  • Dense Layers: To classify the images based on the features extracted and pooled by the previous layers.

Training

The training process involved the following steps:

  1. Data Preprocessing: Images were normalized to ensure pixel values were between 0 and 1, making it easier for the model to learn.
  2. Augmentation: To improve the robustness of the model, data augmentation techniques such as random flips and rotations were employed.
  3. Optimization: The Adam optimizer was chosen for its efficiency in updating the network weights.
  4. Validation: A portion of the dataset was reserved for validation to monitor the model's performance on unseen data.

Accuracy Improvement (Ongoing Process): The model has now reached an accuracy of approximately 82% on the training dataset, showing that the model is able to generalize well to new data.

Web Application and Deployment

The trained model was deployed using Streamlit. Allowing users to upload images and receive predictions in real-time. The deployment process involved:

  1. Streamlit Setup: The web app was scripted using Streamlit, highlighting its ease of transforming scripts into shareable apps.
  2. Model Integration: The trained model was integrated into the app.
  3. Deployment: The Streamlit app was deployed, making it accessible to users worldwide to upload images, testing the model's performance.

Tools/Technologies used

  • Python for programming the model and web application.
  • TensorFlow & Keras for creating and training the CNN.
  • Streamlit for deploying the model as an interactive web application.
  • PIL (Python Imaging Library) for image processing tasks.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation:

If using the CIFAR-10 dataset, please cite:

Krizhevsky, A., Nair, V., and Hinton, G. (2009). CIFAR-10 (Canadian Institute for Advanced Research).

Helpful Sources

Sources that helped me throughout this process:

Acknowledgments

Special thanks to Alex Krizhevsky, Vinod Nair, and Geoffrey Hinton for their work in creating the CIFAR-10 dataset.

  • TensorFlow and Keras teams for their comprehensive libraries that facilitate model building and training.

About

Developed, Trained, and Deployed a Convolutional Neural Network (CNN) based around image classification trained on the CIFAR-10 Dataset

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published