可微编程

编辑
本词条由“匿名用户” 建档。

可微编程为编程范例,其中一数字计算机程序可以区分整个经由自动分化。这允许对程序中的参数进行基于梯度的优化,通常通过梯度下降。可微分编程已在广泛的领域中得到应用,尤其是科学计算和人工智能。 大多数可微编程框架通过构建一个包含程序中的控制流和数据结构的图来工作。早期的尝试通常分为两类: 基于静态、编译图的方法,例如TensorFlow、[注1]Theano和MXNet。它们倾向于允许良好的编译器优化和...

可微编程

编辑

可微编程为编程范例,其中一数字计算机程序可以区分整个经由自动分化。这允许对程序中的参数进行基于梯度的优化,通常通过梯度下降。可微分编程已在广泛的领域中得到应用,尤其是科学计算和人工智能

可微编程方法

编辑

大多数可微编程框架通过构建一个包含程序中的控制流和数据结构的图来工作。早期的尝试通常分为两类:

  • 基于静态、编译图的方法,例如TensorFlow、[注1]Theano和MXNet。它们倾向于允许良好的编译器优化和更容易扩展到大型系统,但它们的静态特性限制了交互性和可以轻松创建的程序类型(例如那些涉及循环或递归的程序),并且使用户更难推理有效地了解他们的计划。
  • 运算符重载、基于动态图的方法,例如PyTorch和AutoGrad。它们的动态和交互性质使大多数程序的编写和推理更加容易。但是,它们会导致解释器开销(尤其是在组合许多小操作时)、较差的可扩展性,并且难以从编译器优化中获益。

这两种早期方法都只能区分以适合框架的方式编写的代码,限制了它们与其他程序的互操作性。

可微编程

Julia编程语言的一个更新包——Zygote——通过将语言的语法视为图形来解决早期尝试面临的问题。然后可以直接区分、优化和编译任意代码的中间表示。

一种名为Myia的编程语言“目前正在开发中,尚未准备好使用”,它允许使用编译为Myia的Python子集来定义模型。

可微编程的应用

编辑

可微编程已经在领域得到了应用,例如结合深度学习物理引擎中的机器人,解决与可微电子结构问题密度泛函理论,可微光线跟踪,图像处理,以及概率性编程。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/126323/

(3)
词条目录
  1. 可微编程
  2. 可微编程方法
  3. 可微编程的应用

轻触这里

关闭目录

目录