A Differentiable Programming System to Bridge Machine Learning and Scientific Computing
Mike Innes, Alan Edelman, Keno Fischer, Chris Rackauckas, Elliot Saba,, Viral B Shah, Will Tebbutt

TL;DR
This paper introduces Zygote, a differentiable programming system in Julia that enables gradient computation for complex programs, bridging machine learning and scientific computing with high performance and broad language support.
Contribution
The paper presents Zygote, a novel differentiable programming system capable of handling general program structures in Julia, facilitating integration of scientific computing and machine learning.
Findings
Supports almost all language constructs including control flow and recursion
Enables high-performance code compilation without user intervention
Facilitates incorporation of extensive libraries into differentiable programs
Abstract
Scientific computing is increasingly incorporating the advancements in machine learning and the ability to work with large amounts of data. At the same time, machine learning models are becoming increasingly sophisticated and exhibit many features often seen in scientific computing, stressing the capabilities of machine learning frameworks. Just as the disciplines of scientific computing and machine learning have shared common underlying infrastructure in the form of numerical linear algebra, we now have the opportunity to further share new computational infrastructure, and thus ideas, in the form of Differentiable Programming. We describe Zygote, a Differentiable Programming system that is able to take gradients of general program structures. We implement this system in the Julia programming language. Our system supports almost all language constructs (control flow, recursion,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNeural Networks and Applications
