IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Image Classification of Cats and Dogs
using CNN and Deep Learning
Project Report
Submitted By: Sanya khare
Submitted To: Mr. Samarth Amruthe
1
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Acknowledgement
I express my sincere gratitude to Mr. Samarth Amruthe, for his
invaluable guidance and supervision throughout our project on Image
Classification of cats and dogs.
I am thankful to Kaggle and tensor-flow, for providing the necessary
datasets and resources that enabled me to complete this project
successfully.
I acknowledge the contribution of the Image Classification of cats and
dogs, which offers advanced tools and expertise for accurate prediction
of cat and dogs. Their support ensures reliable analysis through standard
whether the image is of dog or cat.
I also thank our families and friends for their constant support and
encouragement throughout this journey.
SANYA KHARE
IBM-PBEL VIRTUAL INTERNSHIP
Place: Online
Date: July,2025
2
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
DECLARATION
I hereby declare that this Project Report titled "Introduction to Image
Classification of Cats and Dogs using CNN and Deep Learning",
submitted as part of the IBM PBEL Virtual Internship, is a bona fide work
carried out by me under the mentorship and guidance of our assigned
project guide.
This work has been undertaken solely as a learning and development
initiative during the internship and has not been submitted to any other
university, institution, or organization for the award of any degree,
diploma, or certificate, nor has it been published or presented elsewhere
prior to this submission.
I affirm that the contents of this report are the result of our own efforts
and dedication during the internship tenure
Student Name: Sanya Khare
Project Guide: Mr. Samarth Amruthe
3
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Contents Page
1. Title......................................................... 3
2. Problem Statement..........................4
3. Methadology....................................... 4
4. Dataset Details................................... 5
5. Algorithms and models used......5
6. Results ................................................. 6
7. Conclusions........................................ 6
4
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
TITLE
"Teaching Computers to Recognize Cats and Dogs: A Simple
Guide to Image Classification Using Deep Learning"
Problem Statement
In today's world, where technology is rapidly advancing,
teaching computers to "see" and understand images has
become an exciting and important challenge. One
common and fun example is helping a computer tell the
difference between a cat and a dog just by looking at a
photo.
As humans, we can easily recognize whether an image
shows a cat or a dog, even if the picture is blurry or taken
from a strange angle. But for a computer, this task is not
that simple. It requires a lot of learning and training, just
like how a child learns to recognize animals.
In this project, our goal is to build a smart system that can
automatically identify whether an image contains a cat or a
dog using Convolutional Neural Networks (CNNs) — a
type of deep learning model that works especially well with
images. This kind of system can be helpful in many real-
life applications like pet identification, animal monitoring,
and even in healthcare for animals.
We wanted to explore how deep learning can be used in
image classification and how we can train a machine to
"learn" from examples — just like we do.
5
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Methodology
To build a system that can recognize whether an image shows a cat or a dog,
we followed a step-by-step approach using Convolutional Neural Networks
(CNNs) — a powerful technique in deep learning that is specially designed to
work with images.
Here’s how we approached our project:
1. Collecting Images
We use a dataset of cat and dog images. These images help our model
learn what each animal looks like.
2. Preprocessing the Images
All the images are resized to the same size (128*128 pixels). This
helps the model understand them better. We also convert the images
into numbers (arrays) so the computer can read them.
3. Building the Model
We created a CNN (Convolutional Neural Network) model using
TensorFlow. This model learns how to tell the difference between cats
and dogs by looking at patterns in the images.
4. Training the Model
We show many images to the model and tell it the correct answer (cat
or dog). The model slowly learns by checking its own guesses and
improving step by step.
5. Saving the Model
After training, we save the model in a file. This saved model can now
be used to predict whether a new image is a cat or a dog.
6. Creating a Web App with Streamlit
We built a simple app where users can:
o Upload an image from their device,
The app then shows the prediction (Cat or Dog) with how
confident the model is.
7. Making Predictions
When a user uploads a picture:
o The image is resized and prepared
o The model checks the image and gives a result
o The app shows whether it's a cat or dog, along with the
confidence score (how sure the model is)
6
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Dataset Details
1. Dataset Name:
Cats vs Dogs Dataset (also known as the Dogs vs Cats dataset from
Kaggle)
2. Number of Classes:
o Cats
o Dogs
So, it is a binary classification problem (2 classes only).
3. Total Images:
o Around 50,000 images in total
o Roughly 25,000 images of cats
o Roughly 25,000 images of dogs
4. Image Format:
o JPEG images (.jpg, .jpeg)
o Different sizes, but we resize them to 128*128 pixels for training
5. Data Split (during training):
o Training Set: 80% of the images (to teach the model)
o Validation Set: 20% of the images (to test how well the model is
learning during training)
6. Data Source:
Downloaded from Kaggle: Dogs vs Cats Dataset
7. Preprocessing Done:
o Resize all images to 128*128
o Normalize pixel values (divide by 255) to bring them in range 0–
1
o Shuffle the data so cats and dogs are mixed randomly during
training
7
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Algorithms/Models Used
1. Convolutional Neural Network (CNN) – Main Model Used
We used a CNN, which is a special type of deep learning model made to
understand images.
What CNN does (in simple words):
It looks at small parts of the image (like edges, shapes, and patterns)
Then combines them to recognize if it’s a cat or a dog
2. Layers Used in the Model
Here are the main building blocks (layers) we used in our model:
Conv2D (Convolution Layer):
Finds patterns in small sections of the image like lines, corners, etc.
Batch Normalization:
Helps the model train faster and become more stable.
MaxPooling2D:
Reduces the size of the image while keeping the most important parts.
Flatten:
Converts 2D image features into a 1D list for the final prediction.
Dense (Fully Connected Layer):
Final layers that make the prediction — whether it’s a cat or a dog.
Activation Functions:
o ReLU (for hidden layers): Makes training fast and efficient
o Sigmoid (for final layer): Gives output between 0 and 1 (used to
classify into 2 categories)
3. Saved Model File
The model is trained and saved as:
dogs_vs_cats.keras
8
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Results with graphs/screenshots
Model Accuracy and Loss
After training the CNN model on the dataset, we got the following results:
Training Accuracy: Around 98–99%
Validation Accuracy: Around 90–95%
The model was able to learn the difference between cats and dogs
very well.
Training and Validation Graph:
Model Predictions (Screenshots)
After training, we tested the model using a Streamlit app. Users can upload an
image of a cat or dog, and the app predicts the result.
Screenshot Example:
Input Image: 🐶 (Cat image)
Model Prediction: Cat
9
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Training and Validation Accuracy Graph :
Training And Validation Loss Graph :
10
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
Conclusion:
In this project, we successfully built a Convolutional Neural
Network (CNN) model to classify images of dogs and cats. We
used the Dogs vs Cats dataset, preprocessed the images, and
trained the model using TensorFlow Keras. The model was
able to learn important features from the images and
achieved good accuracy in predicting whether the image is of
a dog or a cat.
This project helped in understanding how CNN works for
image classification and how different layers like convolution,
pooling, and dense layers are used to build an effective
model. In the future, the model can be improved further by
increasing training epochs, adding data augmentation, and
tuning hyperparameters to achieve even better results in real-
world scenarios.
References:
Here are the main resources and tools we used during the project:
1. TensorFlow Keras Documentation:
[Link]
2. Kaggle Datasets – Cats vs Dogs
[Link]
3. Matplotlib and NumPy:
For plotting graphs and handling image data.
4. Online Tutorials and Documentation:
o TensorFlow and Streamlit official guides
o Various educational blogs and YouTube videos for
understanding CNNs and deployment
11
IBM-PBEL VIRTUAL INTERNSHIP
Image Classification of Cats and Dogs using
CNN and Deep Learning
12