Skip to content

Latest commit

 

History

History
27 lines (22 loc) · 771 Bytes

README.md

File metadata and controls

27 lines (22 loc) · 771 Bytes

a smol nn lib written in C w/ a scalar valued autograd engine

include the header file from src/NN.h and you're set (⌐■_■)

What you got bro?

  • Reverse-mode automatic differentiation over a dynamically built DAG.
  • DAG operates over scalar values
  • Scalar values implemented via Value
typedef struct Value {
  double val; // double value
  struct Value** children; // array of pointers to child values
  double* local_grads; // accompanying local grads
  int n_children;
} Value;
  • Scalar Ops on Two Values (add, mul, sub, sigmoid, etc.)
  • Tensor/Matrix/Vector Ops (coming soon)
  • Wrappers for NN stuff (coming soon)

TODO:
🟡 = in progress, 🟢 = done

  • 🟢 write tests for scalar ops
  • 🟡 implement backprop
  • implement tensor ops