For something in between a pytorch and a karpathy/micrograd
tinygrad
For something in between a pytorch and a karpathy/micrograd
This may not be the best deep learning framework, but it is a deep learning framework.
Due to its extreme simplicity, it aims to be the easiest framework to add new accelerators to, with support for both inference and training. Support the simple basic ops, and you get SOTA vision extra/efficientnet.py
and language extra/transformer.py
models. We are working on support for the Apple Neural Engine.
Eventually, we will build custom hardware for tinygrad, and it will be blindingly fast. Now, it is slow.
Installation
pip3 install git+https://github.com/geohot/tinygrad.git --upgrade
Example
from tinygrad.tensor import Tensor
x = Tensor.eye(3)
y = Tensor([[2.0,0,-2.0]])
z = y.matmul(x).sum()
z.backward()
print(x.grad) # dz/dx
print(y.grad) # dz/dy