This repository provides a comprehensive implementation of Feedforward Neural Networks (FNN), Convolutional Neural Networks (CNN), and Recurrent Neural Networks (RNN) using only the NumPy library in Python. Understanding the fundamentals of these neural network architectures is crucial for gaining insights into deep learning.
This repository contains the code for building and training neural networks from scratch using NumPy. The implementations cover three fundamental types of neural networks:
- Feedforward Neural Network (FNN): A basic fully connected neural network. (Layers/FullyConnected.py)
- Convolutional Neural Network (CNN): Specifically designed for image-related tasks. (Layers/Conv.py)
- Recurrent Neural Network (RNN): Suitable for sequential data. (Layers/RNN.py & Layers/BatchNormalization.py)
Each implementation is modular and can be easily extended or customized for specific use cases.
The repository is organized as follows:
Layers
: Contains the implementation of FNN, CNN, and RNN.
- Different layers in CNN like - Conv.py, Pooling.py, Flatten.py, Initializers.py
- Different components in a Simple RNN like - BatchNormalization.py, RNN.py, Dropout.py
- Different activations - ReLU.py, Sigmoid.py, Softmax.py, TanH.py
Optimization
: Includes implementation
- Different optimizers of weights like Sgd, Adam, Sgd with Momentum (Optimizers.py)
- L1 and L2 regularizers (Constraints.py)
- Cross-Entropy Loss (Loss.py)
Feel free to contribute by opening issues, suggesting improvements, or directly submitting pull requests. Your contributions are highly valued!
This project is licensed under the MIT License - see the LICENSE file for details.