This project focuses on classifying images of dogs and cats using convolutional neural networks (CNNs). The goal is to develop a model that can accurately distinguish between images of dogs and cats.
The dataset used for this project is the "Dogs vs Cats" dataset, downloaded from Kaggle. It consists of 25,000 labeled images of dogs and cats.
The CNN model architecture consists of multiple convolutional layers followed by max-pooling layers for feature extraction. Batch normalization and dropout layers are utilized for regularization. The final layer uses a sigmoid activation function to output the probability of an image belonging to the "dog" class.
- The dataset is split into training and validation sets.
- Images are resized to 256x256 pixels and normalized.
- The model is compiled with the Adam optimizer and binary cross-entropy loss function.
- Training is conducted for 10 epochs, monitoring both training and validation accuracy.
- After training, the model achieves a validation accuracy of approximately 74.66%.
- Training and validation accuracy and loss curves are visualized using matplotlib.
- Clone the repository.
- Download the dataset from Kaggle and place it in the appropriate directory.
- Install the required libraries.
- Execute the Jupyter Notebook
Cats-vs-Dogs-classification.ipynb
to train the model and visualize the results. - Experiment with different hyperparameters and model architectures for further improvements.
- Python 3.x
- TensorFlow
- Keras
- NumPy
- Matplotlib
- Experiment with different CNN architectures, such as transfer learning with pre-trained models.
- Augment the dataset with additional images to improve generalization.
- Fine-tune hyperparameters for better performance.