Joe*_*ley 7 language-agnostic automatic-differentiation differentiation
Swift for Tensorflow项目的Swift 中添加了对差分编程的本机支持。Julia 与Zygote类似。
什么是可微分编程?
这些程序可以在整个过程中有所不同
但是,这是什么意思?
我喜欢从面向用户的特性(可微分编程)与实现细节(自动微分)的角度来思考这个问题。
从用户的角度:
“可微分编程”是用于微分的 API。一个例子是def gradient(f)
用于计算 的梯度的高阶函数f
。这些 API 可能是一流的语言功能,或者在库中实现并由库提供。
“自动微分”是自动计算导数函数的实现细节。有许多技术(例如源代码转换、运算符重载)和多种模式(例如正向模式、反向模式)。
代码中解释:
def f(x):
return x * x * x
?f = gradient(f)
print(?f(4)) # 48.0
# Using the `gradient` API:
# ? differentiable programming.
# How `gradient` works to compute the gradient of `f`:
# ? automatic differentiation.
Run Code Online (Sandbox Code Playgroud)