Authors: Saigaurav Bettela, Jeron Perey, Nick Perlich, Sean McCormick
We aim to classify a Pokémon’s primary type (18 classes) from an image using transfer learning with a pretrained CNN.
https://www.kaggle.com/datasets/vishalsubbiah/pokemon-images-and-types?select=pokemon.csv
Given a Pokémon image, predict its primary type (e.g., Fire, Water, Electric) using learned visual features.
- Supervised learning using a Kaggle dataset (images + type labels)
- Transfer learning (e.g., ResNet / EfficientNet)
- Train head first (freeze backbone), then fine-tune upper layers
- Macro F1 (primary metric)
- Top-k accuracy (top-1 and top-3/top-5)
- Train/val/test split: 70/10/20
data/dataset (not tracked)classifiers/model implementationspytorch/PyTorch-based classifierstensorflow/TensorFlow-based classifiersbaseline/baseline models + EDA
evaluations/evaluation code + resultsutils/shared utilities (dataset, preprocessing)scripts/helper scriptsrequirements/dependency files (base, cpu, cu126)
- Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # For CPU-only: pip install -r requirements/requirements.cpu.txt # For CUDA 12.6: pip install -r requirements/requirements.cu126.txt
- Download the dataset from the Kaggle link above and place the files so the structure looks like:
data/ ├── pokemon.csv └── images/ ├── bulbasaur.png ├── charmander.png └── ... - Train
- Evaluate