Skip to main content

A minimalist neural networks library written for educational purposes

Project description

Build Status Python Versions PyPI Version PyPI status Code style: black

pyfit

pyfit is a minimalist neural networks library written from scratch in Python for educational purposes.

Overview

This project aims to:

  • help Machine Learning students and enthusiasts get a deeper understanding of neural networks ;
  • demonstrate automatic differentiation, a core concept of modern Deep Learning frameworks like PyTorch and TensorFlow ;
  • define a clean, pythonic API and follow good coding practices, including type annotations and unit tests.

This material is used in the Machine Learning course taught at ENSC. ENSEIRB-MATMECA and IOGS. See also Acknowledgments.

Demonstration

See the demo notebook.

Features

  • Autograd [ source | tests ]
  • Neural Networks API [ source | tests (soon!) ]
  • Losses [ source | tests ]
  • Optimizers [ source | tests (soon!) ]
  • Data Utilities [ source | tests (soon!) ]
  • Metrics (soon!)
  • Training (soon!)

Development Notes

Checking the code

pyfit uses the following tools:

Run the following commands in project root folder to check the codebase.

> python -m pylint ./pyfit # linting (including type checks)
> python -m mypy .         # type checks only
> python -m pytest         # test suite

Uploading the package to PyPI

> python setup.py sdist bdist_wheel
> python -m twine upload dist/* --skip-existing

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfit-0.1.1.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

pyfit-0.1.1-py3-none-any.whl (17.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page