This project provides a reusable neural network framework implemented for Exercise 2 in the "Computational Models of Learning" course.
The framework supports arbitrary input/output sizes, multiple layers, any activation function, and both scalar and vector-valued outputs.
backpropagation_project/ # Project root
├── neuralnet/ # General-purpose neural network framework
│ ├── __init__.py
│ ├── layers.py
│ ├── network.py
│ ├── training.py
│ ├── utilities.py
│ ├── visualization.py
│ └── assertions/
│ ├── __init__.py
│ ├── layer_assertion.py
│ ├── network_assertion.py
│ └── training_assertion.py
├── scripts/
│ ├── part1.py
│ └── part2.py
├── .gitignore
├── LICENSE # MIT License
├── README.md
├── requirements.txt # Python dependencies
└── setup.cfg
- Supports arbitrary input and output dimensions
- Custom activation functions per layer
- Layer-wise modular assertions
- Visualizations for model behavior
- Separation of general-purpose code and exercise logic
python3 -m venv .venv
source .venv/bin/activatepython -m venv .venv
.venv\Scripts\activatepip install -r requirements.txtAlways run from the project root (backpropagation_project/) using module mode:
python -m scripts.part1
python -m scripts.part2This ensures all relative imports and packages are resolved correctly.
- Python ≥ 3.4
- numpy
- matplotlib
MIT License. See LICENSE for details.
- Name: Or Fadida
- Email: orfadida@mail.tau.ac.il
- GitHub: orfadida2000