The goal of this handbook is to demystify algorithmic differentiation, the tool that underlies modern machine learning. It begins with a calculus-101 style understanding and gradually extends this to build toy implementations of systems similar to PyTorch and TensorFlow. I have tried to clarify the relationships between every kind of differentiation I can think of – including forward and reverse, symbolic, numeric, tracing and source transformation. Where typical real-word ADs are mired in implementation details, these implementations are designed to be coherent enough that the real, fundamental differences – of which there are surprisingly few – become obvious.
The intro notebook is recommended to start with, but otherwise notebooks do not have a fixed order.
If you want to run the notebooks locally, they can be built by running the
src/notebooks.jl script using Julia. They should appear inside a /notebooks
folder. Alternatively, you can run through the scripts in Juno.
2,968 followers · starred Feb 2021
684 followers · starred Jun 2019
379 followers · starred Jun 2019
946 followers · starred Jun 2019
The goal of this handbook is to demystify algorithmic differentiation, the tool that underlies modern machine learning. It begins with a calculus-101 style understanding and gradually extends this to build toy implementations of systems similar to PyTorch and TensorFlow. I have tried to clarify the relationships between every kind of differentiation I can think of – including forward and reverse, symbolic, numeric, tracing and source transformation. Where typical real-word ADs are mired in implementation details, these implementations are designed to be coherent enough that the real, fundamental differences – of which there are surprisingly few – become obvious.
The intro notebook is recommended to start with, but otherwise notebooks do not have a fixed order.
If you want to run the notebooks locally, they can be built by running the
src/notebooks.jl script using Julia. They should appear inside a /notebooks
folder. Alternatively, you can run through the scripts in Juno.
2,968 followers · starred Feb 2021
684 followers · starred Jun 2019
379 followers · starred Jun 2019
946 followers · starred Jun 2019