A deep learning project for classifying landmarks in images using Convolutional Neural Networks (CNNs).
Build and compare CNN models to automatically recognize famous landmarks from photos.
This helps infer the photo’s location when GPS metadata is missing — a task useful for photo storage and tagging services.
| File / Folder | Description |
|---|---|
| cnn_from_scratch.ipynb | Build and train a CNN from scratch |
| transfer_learning.ipynb | Apply transfer learning (ResNet, VGG, etc.) |
| app.ipynb | Deploy and test the best model |
| src/data.py | Data loading and preprocessing |
| src/model.py | Model architecture definitions |
| src/train.py | Training logic |
| src/transfer.py | Transfer learning setup |
| src/optimization.py | Hyperparameter tuning |
| src/predictor.py | Inference utilities |
| src/create_submit_pkg.py | Script to package submission |
| src/helpers.py | Helper functions |
| cnn_from_scratch.html | HTML export |
| transfer_learning.html | HTML export |
| app.html | HTML export |
| README.md | Project overview |
- CNN model built from scratch with PyTorch
- Transfer learning model fine-tuned on the same dataset
- Model comparison and evaluation
- Deployment of the best-performing model in a simple app interface
- Baseline CNN reached good accuracy
- Transfer learning improved classification performance significantly (>90%)
- The final model was exported via Torch Script and integrated into an app
- Python
- PyTorch / torchvision
- numpy / matplotlib / tqdm / PIL
- Jupyter Notebook
📚 Created as part of a deep learning course to practice CNN design, transfer learning, and deployment.