InceptionV3 Dogs vs Cats Classifier
This repository contains a pre-trained TensorFlow/Keras model:
- File:
InceptionV3_Dogs_and_Cats_Classification.h5 - Purpose: Binary classification of cats vs dogs images
Model Details
Architecture: Transfer Learning using InceptionV3 (pre-trained on ImageNet)
Custom Classification Head:
- Global Average Pooling
- Dense layer (512 neurons, ReLU)
- Dropout (0.5)
- Dense layer with Sigmoid activation for binary classification
Input: Images resized to 256 ร 256 pixels
Output: Probability of "Dog" class (values close to 1 indicate dog, close to 0 indicate cat)
Performance
- Test Accuracy: ~99%
- Confusion matrix and ROC curves indicate excellent classification performance
- Achieves near-perfect AUC (~1.0) on the test set
Usage Example
from tensorflow.keras.models import load_model
from PIL import Image
import numpy as np
# Load the model
model = load_model("InceptionV3_Dogs_and_Cats_Classification.h5")
# Preprocess an image
img = Image.open("cat_or_dog.jpg").resize((256, 256))
img_array = np.expand_dims(np.array(img)/255.0, axis=0)
# Predict
prediction = model.predict(img_array)
print("Dog" if prediction[0][0] > 0.5 else "Cat")