Selyatin / tinygrad

Tinygrad is a small implementation for forward and backward evaluation of flow graphs (e.g. linear classifiers and neural networks.)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tinygrad

tinygrad evaluates flow graphs and computes their gradients. The scope of tinygrad is to provide a minimalistic C++ implementation of flow graphs (e.g. for embedded platforms). Therefore tinygrad is not a full framework, which implement GPU support and parallel/distributed computation. See Torch, Theano or TensorFlow for a full framework with bells and whistles. The current version of tinygrad utilizes Eigen for linear algebra. However, if needed, the required linear algebra can use any back-end (maybe roll your own for very restricted environments?).

See "examples" folder for using the predefined models (see predefined_models.h):

  • Autoencoder
  • Neural network
  • Logistic regression

Compile examples

Install Eigen:

  • Arch Linux: "pacman -S eigen"
  • Manual installation: follow the instructions at Eigen website

Compile the predefined example models:

  • cd /to/tinygrad/repository/folder
  • chmod +x build.sh
  • ./build.sh

About

Tinygrad is a small implementation for forward and backward evaluation of flow graphs (e.g. linear classifiers and neural networks.)

License:MIT License


Languages

Language:C++ 87.8%Language:CMake 8.5%Language:Python 2.0%Language:Shell 1.7%