Existing libraries implement automatic differentiation by tracing a program's execution (at runtime, like PyTorch) or by staging out a dynamic data-flow graph and then differentiating the graph (ahead-of-time, like TensorFlow). In contrast, Tangent performs ahead-of-time autodiff on the Python source code itself, and produces Python source code as its output. Tangent fills a unique location in the space of machine learning tools. As a result, you can finally read your automatic derivative code just like the rest of your program. Tangent is useful to researchers and students who not only want to write their models in Python, but also read and debug automatically-generated derivative code without sacrificing speed and flexibility. Tangent works on a large and growing subset of Python, provides extra autodiff features other Python ML libraries don't have, has reasonable performance, and is compatible with TensorFlow and NumPy.
Features
- Tangent is a new, free, and open-source Python library for automatic differentiation
- This project is an experimental release
- Provides an interactive notebook with all the code in the project page
- Tangent fills a unique location in the space of machine learning tools
- The easiest way to install Tangent is to use pip
- Tangent supports differentiating functions that use TensorFlow Eager functions that are composed together