Deep-learning dog breed classifier with a modern training/inference CLI built on TensorFlow/Keras.
- Replaced notebook-exported script with a clean Python CLI.
- Added stronger transfer-learning backbones:
EfficientNetB0,ResNet50,MobileNetV2. - Added two-phase training (feature extraction + fine-tuning).
- Added richer evaluation metrics and analysis artifacts.
- Added model + label export for reproducible inference.
- Added test/CI/dependency scaffolding for project reliability.
DogBreedClassification/
dog_breed_classifier_models.py
tests/
test_cli_smoke.py
requirements.txt
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtDataset structure should be class folders:
data/
beagle/
husky/
pug/
Run:
python DogBreedClassification/dog_breed_classifier_models.py train \
--data-dir data \
--backbone efficientnetb0 \
--model-out models/dog_breed.keras \
--labels-out models/labels.json \
--analysis-dir analysis \
--epochs 8 \
--fine-tune-epochs 2Generated analysis outputs:
analysis/training_history.jsonanalysis/classification_report.jsonanalysis/metrics_summary.jsonanalysis/confusion_matrix.csvanalysis/confusion_matrix.png
python DogBreedClassification/dog_breed_classifier_models.py predict \
--model-path models/dog_breed.keras \
--labels-path models/labels.json \
--image sample.jpgPrediction now returns top-5 classes with confidence scores.
python -m pytest -q