This project applies Convolutional Neural Networks (CNNs) with transfer learning using EfficientNetB7 to classify dog breeds from the Stanford Dogs dataset. The dataset contains 120 dog breeds, making it a fine-grained image classification task.
Stanford_Dogs.ipynb– Main Jupyter Notebook with model training and evaluationrequirements.txt– List of dependenciestraining_log.txt– Accuracy and loss logs
- Python 3.x
- TensorFlow / Keras
- NumPy
- Matplotlib
- scikit-learn
Install dependencies:
pip install -r requirements.txt- Download the Stanford Dogs dataset via TensorFlow Datasets:
import tensorflow_datasets as tfds
ds, info = tfds.load("stanford_dogs", with_info=True, as_supervised=True)-
Place the dataset in a folder named
data/(or adjust the path in the notebook). -
Run the notebook:
jupyter notebook Stanford_Dogs.ipynbModel: EfficientNetB7 (Transfer Learning)
- Training Accuracy: 92.76%
- Validation Accuracy: 95.64%
- Test Accuracy: 95.64%
-
This project demonstrates the effectiveness of EfficientNetB7 for fine-grained image classification.
-
Future improvements could include:
- More advanced data augmentation
- Fine-tuning additional layers
- Trying Vision Transformers (ViTs) or other modern architectures