A clean portfolio project for practicing neural networks, binary classification, and deep learning fundamentals using both a from-scratch NumPy implementation and a PyTorch implementation.
The project focuses on understanding how a small neural network works internally: activation functions, forward propagation, binary cross-entropy loss, backpropagation, gradient descent, and model evaluation.
This repository contains two versions of the same learning problem:
-
NumPy MLP from scratch
A small two-layer neural network implemented manually using NumPy. -
PyTorch MLP
The same idea implemented using PyTorch to compare a manual implementation with a modern deep learning framework.
The goal is not to build the largest model, but to clearly understand the mechanics behind neural network training.
- Activation functions and derivatives
- Forward propagation
- Binary cross-entropy loss
- Backpropagation
- Gradient descent
- Mini-batch style training logic
- PyTorch model definition and training
- Accuracy evaluation
- Clean project organization
- Basic testing of activation functions and model behavior
deep-learning-numpy-pytorch/
│
├── src/
│ ├── activations.py
│ ├── data.py
│ ├── mlp_numpy.py
│ └── mlp_torch.py
│
├── examples/
│ └── run_experiment.py
│
├── tests/
│ └── test_activations.py
│
├── requirements.txt
├── .gitignore
└── README.md
Language: Python
Core Libraries: NumPy, PyTorch
Optional Visualization: Matplotlib
Concepts: Neural Networks, MLP, Backpropagation, Binary Classification, Deep Learning Fundamentals
Install the requirements:
pip install -r requirements.txtRun the example experiment:
python examples/run_experiment.pyRun the tests:
python -m pytest testsThis repository is a cleaned portfolio-style project. It does not include raw exam submissions, assignment prompts, grading material, student identifiers, or private course files.
Raed H. Manna
Computer Engineering Graduate | Junior Full-Stack Developer
- GitHub: RaedManna
- LinkedIn: raedhmanna