Skip to content

feat: add MobileNetV2 Pokémon classification pipeline and notebook#1070

Open
shrinidhipw05 wants to merge 3 commits into
abhisheks008:mainfrom
shrinidhipw05:feature/pokemon-classification
Open

feat: add MobileNetV2 Pokémon classification pipeline and notebook#1070
shrinidhipw05 wants to merge 3 commits into
abhisheks008:mainfrom
shrinidhipw05:feature/pokemon-classification

Conversation

@shrinidhipw05

@shrinidhipw05 shrinidhipw05 commented May 26, 2026

Copy link
Copy Markdown

Issue Title : Pokémon classification using Deep learning

  • Info about the related issue (Aim of the project) : To classify 150 different Pokémon species of Gen 1 based on a 7000+ labeled image dataset.
  • Name: Shrinidhi Walvekar
  • GitHub ID: shrinidhipw05
  • Email ID: ec24bt006@iitdh.ac.in
  • Identify yourself: GSSoC Participant

Closes #966

Technical Implementation Summary

I have successfully built, optimized, and finalized the end-to-end computer vision pipeline for this project. Here is a breakdown of the development steps and engineering choices made:

  • Optimized Data Pipeline: Utilized image_dataset_from_directory with an 80/20 train/validation split across the 150 classes (processing 6,820 valid images). Applied .cache() and .prefetch(AUTOTUNE) performance optimization alongside on-the-fly data augmentation (RandomFlip, RandomRotation, RandomZoom) to build model robustness.
  • Architecture Optimization & Pivot: Initially built a Custom CNN baseline which exhibited severe overfitting (~82% train vs. ~32% validation accuracy). After testing a heavy VGG16 architecture that bottlenecked training times on CPU, I pivoted to MobileNetV2 transfer learning (with frozen ImageNet weights and proper preprocess_input matching).
  • Performance & Validation: MobileNetV2 successfully stabilized the training process, reaching ~67% validation accuracy in just 5 epochs. Training time dropped to a highly efficient ~50 seconds per epoch on CPU with excellent convergence.
  • Deliverables: Integrated matplotlib learning curves directly within the notebook to visually map accuracy and loss trajectories. The final optimized model weights have been compiled and exported cleanly to `Model/pokemon_mobilenetv2.keras.

Comprehensive markdown notes have been embedded within the notebook to explain the architectural pivot, ensuring the notebook serves as a high-quality, readable asset for the repository. Ready for review!

@github-actions

Copy link
Copy Markdown

Our team will soon review your PR. Thanks @shrinidhipw05 :)

@abhisheks008 abhisheks008 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please follow the project folder structure mentioned in the README of the project repository. Based on that, update the files/folders and re-push your PR.
@shrinidhipw05

@abhisheks008 abhisheks008 added Status: Requested Changes Changes requested. GSSOC 2026 Issues marked for GSSOC 2026 labels May 30, 2026
@shrinidhipw05

shrinidhipw05 commented Jun 1, 2026

Copy link
Copy Markdown
Author

Hi @abhisheks008, thanks for the review! I have completely updated the file structure to match the repository's template exactly:

  • Moved the notebook and the .keras model weights strictly into the Model/ directory.
  • Cleaned up the duplicate tracking of the notebook from the root directory.
  • As per the repository guidelines for large datasets, I deliberately kept the raw 7000+ images out of the PR to prevent repository bloat. Instead, I added a README.md inside the Dataset/ folder containing the direct Kaggle link.

Let me know if anything else is needed. Ready for review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GSSOC 2026 Issues marked for GSSOC 2026 Status: Requested Changes Changes requested.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pokémon classification using Deep learning

2 participants