Cat Breed Classification Model

Model Description

This model leverages transfer learning with the EfficientNetV2-L architecture as the backbone to classify images of five different cat breeds. The model is fine-tuned to identify distinct types of cats based on image features, and the later layers of the EfficientNetV2-L backbone are exposed and used to create embeddings.

The model is trained to classify the following five cat breeds:

  • Domestic Short-Hair
  • Siamese
  • Maine Coon
  • Bengal
  • Ragdoll

EfficientNetV2-L is a state-of-the-art image classification model that provides a good balance of speed and accuracy while achieving high performance on image recognition tasks.

Intended Use

This model is designed for the classification of cat breeds in images. It can be used for:

  • Cat breed classification in images of cats.
  • Feature extraction via embeddings, which can be used for further analysis, clustering, or as a feature for other machine learning tasks.

How to Use

You can easily load this model and use it to classify cat images with the following code snippet:

import tensorflow as tf
from tensorflow.keras.models import load_model
import numpy as np
from tensorflow.keras.preprocessing import image

# Load the pre-trained model
model = tf.keras.models.load_model("path_to_model")

# Example image preprocessing
img_path = "path_to_image.jpg"
img = image.load_img(img_path, target_size=(128, 128))  # Resize to 128x128
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)  # Add batch dimension
img_array /= 255.0  # Normalize to [0, 1]

# Predict the cat breed
predictions = model.predict(img_array)

# Predict the cat breed
predictions = model.predict(img_array)
class_labels = ["Bengal", "Domestic Shorthair", "Maine Coon", "Ragdoll", "Siamese"]
predicted_breed = class_labels[np.argmax(predictions)]


predicted_breed = class_labels[np.argmax(predictions)]

print(f"Predicted Cat Breed: {predicted_breed}")

Training Data

This model was trained on the Cats Breed Dataset, available on Kaggle. The dataset consists of labeled images for each breed, which were resized to 128x128 pixels for training. The images were also normalized to a [0, 1] range to match the input size required by EfficientNetV2-L. Data augmentation techniques such as random rotations, flips, and scaling were applied to increase model robustness and reduce overfitting.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support