Skip to content

This project demonstrates how to classify images of dogs and cats using a Convolutional Neural Network (CNN) built with TensorFlow and Keras. It includes functionalities for organizing the dataset, building and training the model, making predictions, and visualizing results..

Notifications You must be signed in to change notification settings

ShubhamDoshi126/Dogs-vs-Cats-classification-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Dogs vs Cats Classification Project

A deep learning project for classifying dog and cat images using Convolutional Neural Networks (CNN) with TensorFlow and Keras.

Overview

This project implements a binary image classifier to distinguish between dogs and cats, with additional testing on breed classification. The system utilizes a CNN architecture for robust feature extraction and classification.

Project Structure

.
├── dogs_cats.py        # Main implementation class
└── module10.ipynb      # Training and visualization notebook

Features

Dataset Management

  • Automated dataset organization into train/validation/test splits
  • Built-in data augmentation pipeline
  • Integrated TensorFlow dataset creation

Model Architecture

  • Custom CNN implementation
  • Data augmentation layers
  • Optimized for binary classification

Installation

pip install tensorflow matplotlib numpy

Usage

Dataset Preparation

from dogs_cats import DogsCats

dogs_cats = DogsCats()
dogs_cats.make_dataset_folders('validation', 0, 2400)
dogs_cats.make_dataset_folders('train', 2400, 12000)
dogs_cats.make_dataset_folders('test', 12000, 12500)
dogs_cats.make_dataset()

Model Training

dogs_cats.build_network()
dogs_cats.train('model.dogs-cats')

Prediction

dogs_cats.predict('path/to/image.jpg')

Model Architecture

The CNN architecture includes:

  • Data augmentation layers
  • Convolutional layers with max pooling
  • Dense layers for classification
  • Binary cross-entropy loss function

Training Process

Callbacks Implementation

  • Early stopping for preventing overfitting
  • Model checkpointing for saving best weights
  • TensorBoard integration for monitoring

Model Persistence

Save Model

dogs_cats.save_model('model.dogs-cats')

Load Model

dogs_cats.load_model('model.dogs-cats')

Performance Visualization

The project includes tools for visualizing:

  • Training/validation accuracy
  • Loss curves
  • Prediction results

About

This project demonstrates how to classify images of dogs and cats using a Convolutional Neural Network (CNN) built with TensorFlow and Keras. It includes functionalities for organizing the dataset, building and training the model, making predictions, and visualizing results..

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published