# ToyDL: Deep Learning from Scratch


[![Python](https://img.shields.io/pypi/pyversions/toydl.svg?color=%2334D058)](https://pypi.org/project/toydl/)
[![PyPI](https://img.shields.io/pypi/v/toydl?color=%2334D058&label=pypi%20package)](https://pypi.org/project/toydl/)

[![codecov](https://codecov.io/gh/ai-glimpse/toydl/graph/badge.svg?token=e2LQa7MF8s)](https://codecov.io/gh/ai-glimpse/toydl)
[![Build Docs](https://github.com/ai-glimpse/toydl/actions/workflows/build_docs.yml/badge.svg)](https://github.com/ai-glimpse/toydl/actions/workflows/build_docs.yml)
[![Test](https://github.com/ai-glimpse/toydl/actions/workflows/test.yml/badge.svg)](https://github.com/ai-glimpse/toydl/actions/workflows/test.yml)


[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)


ToyDL, as an education project, is aimed to make the
concepts behind the deep learning as clear as possible.
I do believe the key to reach the target is **SIMPLE**, as simple as possible.
I'm trying to use little code to build this library, although it's not simple enough yet.

### Installation

```bash
pip install toydl
```


## Related Projects
- [minitorch](https://github.com/minitorch/minitorch): The implementation of `toydl` is highly inspired by minitorch
- micrograd: [https://github.com/karpathy/micrograd](https://github.com/karpathy/micrograd)
- tinygrad: [https://github.com/tinygrad/tinygrad](https://github.com/tinygrad/tinygrad)
- nanograd: [https://github.com/e3ntity/nanograd](https://github.com/e3ntity/nanograd)
