This project implements a Convolutional Neural Network (CNN) using TensorFlow and Keras to classify images from a dataset organized into training, validation, and test directories.
The dataset is expected to be organized as:
dataset/ βββ train/ β βββ class_1/ β βββ class_2/ βββ valid/ β βββ class_1/ β βββ class_2/ βββ test/ βββ class_1/ βββ class_2/
- TensorFlow / Keras
- Python
- Matplotlib (for visualization)
- ImageDataGenerator (for augmentation and normalization)
Input -> Conv2D -> MaxPooling -> Conv2D -> MaxPooling -> Conv2D -> MaxPooling -> Conv2D -> MaxPooling -> Flatten -> Dense(512) -> Dropout -> Dense(output_classes)
- Data augmentation for robust training
- CNN with 4 convolutional layers
- Dropout for regularization
- Softmax output for multi-class classification
- Training/validation loss and accuracy tracking
To train the model:
model.fit( train_generator, steps_per_epoch=train_generator.samples // train_generator.batch_size, epochs=45, validation_data=val_generator, validation_steps=val_generator.samples // val_generator.batch_size )
Accuracy and loss during training and validation are recorded and can be visualized with matplotlib.
- Clone the repo.
- Organize your dataset as shown above.
- Install dependencies:
pip install tensorflow matplotlib
- Run the notebook to train and evaluate your model.
MIT License.