Tangent: Automatic Differentiation Using Source-Code Transformation for Dynamically Typed Array Programming
Abstract
The need to efficiently calculate first- and higher-order derivatives of increasingly complex models expressed in Python has stressed or exceeded the capabilities of available tools. In this work, we explore techniques from the field of automatic differentiation (AD) that can give researchers expressive power, performance and strong usability. These include source-code transformation (SCT), flexible gradient surgery, efficient in-place array operations, and higher-order derivatives. We implement and demonstrate these ideas in the Tangent software library for Python, the first AD framework for a dynamic language that uses SCT.
Cite
Text
van Merrienboer et al. "Tangent: Automatic Differentiation Using Source-Code Transformation for Dynamically Typed Array Programming." Neural Information Processing Systems, 2018.Markdown
[van Merrienboer et al. "Tangent: Automatic Differentiation Using Source-Code Transformation for Dynamically Typed Array Programming." Neural Information Processing Systems, 2018.](https://mlanthology.org/neurips/2018/vanmerrienboer2018neurips-tangent/)BibTeX
@inproceedings{vanmerrienboer2018neurips-tangent,
title = {{Tangent: Automatic Differentiation Using Source-Code Transformation for Dynamically Typed Array Programming}},
author = {van Merrienboer, Bart and Moldovan, Dan and Wiltschko, Alexander},
booktitle = {Neural Information Processing Systems},
year = {2018},
pages = {6256-6265},
url = {https://mlanthology.org/neurips/2018/vanmerrienboer2018neurips-tangent/}
}