gpt4 book ai didi

julia - 在 Julia 中导航自动微分生态系统

转载 作者:行者123 更新时间:2023-12-04 11:56:35 29 4
gpt4 key购买 nike

Julia 有一个有点庞大的 AD 生态系统,据我所知,现在可能有十多个不同的包,正向模式( ForwardDiff.jlForwardDiff2.jl
)、反向模式( ReverseDiff.jlNabla.jlAutoGrad.jl )和源到源( Zygote.jlYota.jlEnzyme.jl ),并且可能还有几种不同的。编译管道的步骤,以及更奇特的东西,如 NiLang.jl .
在这些包之间,对不同语言结构(控制流、变异等)的支持是什么,是否有关于如何为给定任务选择给定 AD 的经验法则?我相信在某个时候在 Julia Slack 上有一个比较表,但我似乎无法在相关的话语线索或其他可能的地方( 12 )中找到任何类似的为后代复制的内容

最佳答案

我也很想听到一个明智的答案。还有一些可能感兴趣的链接。
衍射器现在有一个 Github repo ,其中列出了实现计划。在阅读了那里的文字后,我认为在 Diffractor 准备好生产之前,它需要长期的实现工作。另一方面,there is a feeling Zygote 在等待衍射器时可能处于“维护模式”。至少从远处看,情况似乎有些尴尬。好消息是ChainRules.jl生态系统似乎可以轻松地在 autodiff 系统之间进行交换。
截至 2021 年 9 月,Yota似乎正在迅速发展。 0.5 版本带来了对 ChainRules 的支持,这似乎将其解锁以供生产使用。这个release thread有很多有趣的讨论.我通过阅读这些线程的理解是,与 Zygote 相比,Yota 的范围更有限(例如,不支持通过变异进行自动差异)。这个有限的范围有开放的优势optimization opportunities例如预分配和内核融合,这在更通用的 autodiff 系统中可能是不可能的。因此,Yota 可能更适合填补 PyTorch 类型建模等领域的空白。

关于julia - 在 Julia 中导航自动微分生态系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68231007/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com