No single Automatic Differentiation (AD) system is the optimal choice for all problems. This means informed selection of an AD system and combinations can be a problem-specific variable that can greatly impact performance. In the Julia programming language, the major AD systems target the same input and thus in theory can compose. Hitherto, switching between AD packages in the Julia Language required end-users to familiarize themselves with the user-facing API of the respective packages. Furthermore, implementing a new, usable AD package required AD package developers to write boilerplate code to define convenience API functions for end-users. As a response to these issues, we present AbstractDifferentiation.jl for the automatized generation of an extensive, unified, user-facing API for any AD package. By splitting the complexity between AD users and AD developers, AD package developers only need to implement one or two primitive definitions to support various utilities for AD users like Jacobians, Hessians and lazy product operators from native primitives such as pullbacks or pushforwards, thus removing tedious -- but so far inevitable -- boilerplate code, and enabling the easy switching and composing between AD implementations for end-users.


翻译:没有单一的自动区分系统(AD)是所有问题的最佳选择。 这意味着对自动交换系统和组合进行知情选择, 这可能是一个问题特有的变量, 能够极大地影响业绩。 在Julia 编程语言中, 主要的自动交换系统针对相同的输入, 理论上也可以组成。 久且, 朱丽亚语言中的自动交换软件包需要终端用户熟悉各自软件包中用户的用户自定义的API 。 此外, 实施一个新的、 可用的自动交换软件包需要AD软件包开发商写入锅炉代码, 以定义终端用户的便利 API 功能。 作为对这些问题的响应, 我们为任何自动交换软件包的自动化生成提供了“ 抽象差异化” jl 。 通过将自动交换用户和自动交换软件包开发者之间的复杂度分开, AD软件包开发者只需要执行一两个原始定义, 来支持亚各用户的各种公用事业, 如Jacobian、 Hesian 和懒惰的产品操作者, 等来自本地原始用户的用户, 诸如拉倒或推倒, 等, 从而消除迟钝的 -- 但是的 -- 如此不可避免的 -- -- 锅压紧不可避免的用户之间的转换和共同实施。

0
下载
关闭预览

相关内容

Effective.Modern.C++ 中英文版,334页pdf
专知会员服务
66+阅读 · 2020年11月4日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
48+阅读 · 2020年7月4日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【google】监督对比学习,Supervised Contrastive Learning
专知会员服务
31+阅读 · 2020年4月23日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
193+阅读 · 2019年10月10日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
9+阅读 · 2018年12月19日
Arxiv
4+阅读 · 2017年1月2日
VIP会员
相关VIP内容
Effective.Modern.C++ 中英文版,334页pdf
专知会员服务
66+阅读 · 2020年11月4日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
48+阅读 · 2020年7月4日
【Manning新书】现代Java实战,592页pdf
专知会员服务
98+阅读 · 2020年5月22日
【google】监督对比学习,Supervised Contrastive Learning
专知会员服务
31+阅读 · 2020年4月23日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
193+阅读 · 2019年10月10日
相关资讯
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
已删除
将门创投
9+阅读 · 2018年12月19日
Top
微信扫码咨询专知VIP会员