Skip to content

Onxi95/convolutional-neural-network-from-scratch

Repository files navigation

Convolutional Neural Network from Scratch

About the Project

This project is part of the Artificial Intelligence course offered by the Warsaw University of Technology. It involves the implementation of a convolutional neural network (CNN) from scratch, using only NumPy to understand the fundamentals of CNN operations, including convolutional layers, pooling, and backpropagation.

Project Objectives

  • To understand the underlying mathematics and operations of convolutional neural networks.
  • To implement the forward and backward passes of a CNN from scratch.
  • To apply the CNN on a dataset "Fashion MNIST" for image classification tasks.

Getting Started

Prerequisites

  • Python 3.x
  • NumPy
  • Matplotlib (for visualizing the results)

Installation

  1. Clone the repository to your local machine.
  2. Navigate to the project directory
  3. Create virtualenv
  4. Activate virtualenv and install dependencies

Implementation Details

Architecture

Briefly describe the architecture of your CNN, including:

  • Number of layers
  • Types of layers (convolutional, pooling, fully connected)
  • Activation functions used

Dataset

Describe the dataset used for training and testing the model, including:

  • Source of the dataset
  • Number of images
  • Image dimensions
  • Classes

Performance

Discuss the performance of your model, including:

  • Accuracy on the training and test sets
  • Any overfitting or underfitting observed
  • Visualizations of loss and accuracy over epochs (optional)

Challenges Faced

Discuss any challenges encountered during the project's development, such as:

  • Implementing backpropagation from scratch
  • Optimizing the model for better performance
  • Dealing with overfitting

Future Work

Outline potential improvements or next steps for the project, such as:

  • Implementing additional regularization techniques
  • Testing the model on different datasets
  • Enhancing the model architecture for improved accuracy

Contributors

  • Your Name (your email)

Acknowledgments

  • Mention any resources, articles, or papers that were particularly helpful.
  • Acknowledge contributions from peers, instructors, or others.

License

Include a license for your project, if applicable.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages