{"id":22976429,"url":"https://github.com/alexdjulin/ik-image-classification-with-cnn","last_synced_at":"2025-09-10T00:17:28.370Z","repository":{"id":265270727,"uuid":"862798473","full_name":"alexdjulin/ik-image-classification-with-cnn","owner":"alexdjulin","description":"Build a Convolutional Neural Network (CNN) model to classify images from a given dataset into predefined categories/classes.","archived":false,"fork":false,"pushed_at":"2024-11-29T11:07:47.000Z","size":18556,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T23:26:34.734Z","etag":null,"topics":["cnn-classification","deep-learning","fine-tuning","resnet50","transferlearning","vgg16-model"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexdjulin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-25T07:56:22.000Z","updated_at":"2024-11-29T11:07:50.000Z","dependencies_parsed_at":"2025-02-07T23:34:45.517Z","dependency_job_id":null,"html_url":"https://github.com/alexdjulin/ik-image-classification-with-cnn","commit_stats":null,"previous_names":["alexdjulin/ik-p1-image-classification-with-cnn"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdjulin%2Fik-image-classification-with-cnn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdjulin%2Fik-image-classification-with-cnn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdjulin%2Fik-image-classification-with-cnn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdjulin%2Fik-image-classification-with-cnn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexdjulin","download_url":"https://codeload.github.com/alexdjulin/ik-image-classification-with-cnn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246777791,"owners_count":20832033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cnn-classification","deep-learning","fine-tuning","resnet50","transferlearning","vgg16-model"],"created_at":"2024-12-15T00:50:50.514Z","updated_at":"2025-04-02T08:20:47.565Z","avatar_url":"https://github.com/alexdjulin.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo_ironhack_blue 7](https://user-images.githubusercontent.com/23629340/40541063-a07a0a8a-601a-11e8-91b5-2f13e4e6b441.png)\n\nThis project was part of a 9-week training course I attended in 2024.\n- **Bootcamp**: Ironhack [AI Engineering bootcamp](https://www.ironhack.com/de-en/artificial-intelligence/remote)\n- **Date**: September to November 2024\n- **Teammates**: [KK](https://github.com/karthik-kk-aiml), [Freddy](https://github.com/fredsmeds)\n- **Project topics**: Deep Learning, CNNs, Transfer Learning, Fine-Tuning, VGG16, ResNet50\n\nFinal Grade and teacher's feedback:\n```\n- Presentation. Good summary slide comparing all approaches\n- Code: You shared all the intermediate notebooks - I didn't check all of them, but this is a good practice.\n- Report: Choice of the dataset is very well justified\n- Report: Typically you don't say \"batch normalization\" for input data normalization, only for the BN layers\n- The report was clear and easy to follow and understand, with charts that show model architecture and performance\n- You tried transfer learning with two prebuilt models and compared them, that is very good\n- Good decision making that shows clear understanding of the underlying concepts\n- I appreciated the README. It is a good practice so people checking your work can easily understand where to go. It still was not clear to me which of the notebooks is the one referred in the report section 3.2\n- Presentation: overall good. Too extensive 27 slides for a 12 minute presentation.\n- Summary: Excellent work and results, congratulations!\n- Final grade: 9.66 / 10\n```\n\n----\n\n# Image Classification with CNN\n\nBuild a Convolutional Neural Network (CNN) model to classify images from a given dataset into predefined categories/classes.\n\n[Task Descriptions and Project Instructions](https://github.com/ironhack-labs/project-1-deep-learning-image-classification-with-cnn)\n\n\u003cimg src=\"readme/classification.png\"\u003e\n\n## Project Results\nIn this project, we processed the CIFAR10 dataset of images and explored different classifiers results:\n- Building a sequential CNN model from scratch\n- Transfer learning from VGG16\n- Transfer learning from ResNet50  (best results)\n- Fine-tuning ResNet50\n\nWe deployed a simple gradio demo showing the classification results on unseen images.\n\n![gradio_demo](readme/gradio_demo.png)\n\n## Repository Folders and Files\n\nHere is a short description of the folder and files available on the repository.\n\n### Documents\n**Group2 - Image Classification with CNN - Final Report**  \nFinal PDF report (shared with group)  \n\n**Group2 - Image Classification with CNN - Presentation Slides**  \nFinal Slides presentation (shared with group)  \n\n### Notebooks  \n- **animals10_dataset_exploration**: Explores the Animals10 dataset (not used)\n- **cifar10_dataset_exploration**: Explores the Cifar10 dataset (used in project)\n  \n- **model1_training**: Training a minimalist CNN from scratch\n- **model2_training**: Improving model 1 with a more complex structure\n- **model3_training**: Improving model 2's hyperparameters and experimenting with optimizers\n- **model4_training**: Improving model 3 and reducing overfitting\n- **model5_training**: Trying to replicate VGG16 architecture and train it from scratch\n- **model6_training**: Transfer learning on VGG16 - Failed\n- **model7_training**: Transfer learning on ResNet50 - Best model\n- **model8_training**: Fine-tuning model 7 - Failed\n  \n- **model_testing**: Load and test the model on unseen pictures\n- **model_deployment**: Deploy a demo of our best model on Gradio\n\n### Python Modules\n**helpers.py:** Helper module used my all the notebooks with useful methods to load and preprocess the dataset, evaluate the model, plot curves and confusion matrix, and so on.\n\n### Additional Folders\n**test_images**: folder of unseen images to test on the model\n\n## Installation\nUse **requirements.txt** to install the required packages to run the notebooks. It is advised to use a virtual environment.\n```bash\npython -m venv .venv\n.venv/Scripts/activate\npip install -r requirements.txt\n```\n\n## Acknowledgements\nA big thank you to my colleagues Freddy and KK who worked with me all along this exciting and challenging project.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdjulin%2Fik-image-classification-with-cnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexdjulin%2Fik-image-classification-with-cnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdjulin%2Fik-image-classification-with-cnn/lists"}