Dataset : https://www.kaggle.com/datasets/hitanshuintern/animal151
A machine learning project to classify 150 animal species using transfer learning with EfficientNetB0 in TensorFlow/Keras.
This project uses EfficientNetB0, the baseline model in the EfficientNet family.
EfficientNet models are designed with a compound scaling method that balances depth, width, and input resolution for optimal accuracy and efficiency.
- Lightweight: ~5M parameters, making it fast and memory‑friendly.
- Pretrained: Initialized with ImageNet weights for strong transfer learning.
- Architecture: Built with MBConv blocks and squeeze‑and‑excitation layers to capture rich features.
- Input Size: 224×224 pixels.
In this project, EfficientNetB0 is used as a frozen feature extractor, with a custom classification head (Global Average Pooling + Dense Softmax) added for 150 animal classes.
- Dataset: Custom animal dataset (train / val / test) stored in Google Drive.
- Model: EfficientNetB0 (pretrained on ImageNet) + Global Average Pooling + Dense Softmax (150 classes).
- Augmentation: Random flips, rotations, zoom, and translations.
- Callbacks:
ModelCheckpoint-> save best modelEarlyStopping-> prevent overfittingReduceLROnPlateau-> adaptive learning rate
- Rapid accuracy gain from transfer learning.
- Training accuracy ~95%, validation accuracy ~93–94% after 10 epochs.
- Validation loss steadily decreased → good generalization.
- Validation Accuracy: ~85.7% (on held‑out validation set).
- Metrics: Accuracy/Loss curves, Confusion Matrix, Classification Report.
- Error Analysis: Top misclassified classes and sample mispredictions visualized.