Rackpropagator - automatic differentiation in Racket

I've been working on an automatic differentiation library recently and thought I'd share the current work-in-progress. I've had fun writing it and have learned a lot about the Racket macro system in the process!

It provides so-called 'reverse mode' AD, implemented as syntax transformation. A function definition (written in a subset of Racket) can be macro-transfomed into a function that also computes its gradient. See the docs for some examples and references.

The output it produces can be quite inefficient at the moment, along with a few other limitations. I'm currently thinking about how to improve this.

Also, the build on the package server seems to be failing, although I'm not sure why.


seems like not package's problem:

raco setup: making: <pkgs>/rackpropagator-lib/rackpropagator
raco setup:  in <pkgs>/rackpropagator-lib/rackpropagator
1 Like