2

我在 Xcode 中安装了 TensorFlow 工具链,并尝试从 S4TF GitHub 页面运行示例片段。我收到以下错误:

JVP does not exist. Differential-first differentiation APIs are experimental and should not be used.

然后我尝试在 Google Colab 上做同样的事情并得到同样的错误。这是我要运行的代码片段:

@differentiable
func f(_ x: Float) -> Float {
    x * x
}
let dfdx = derivative(of: f)
dfdx(3) // 6

我知道这是我第一次运行 S4TF 并且我不知道很多事情,所以这可能是我的一个愚蠢的错误 :)

4

1 回答 1

6

您看到该错误是因为您尝试采用前向模式导数,并且尚未在 Swift 自动微分系统中实现对它的支持。当前实现支持反向模式微分,因此您可以使用gradient运算符来获得您想要的结果:

@differentiable
func f(_ x: Float) -> Float {
    x * x
}
let dfdx = gradient(of: f)
dfdx(3) // 6

正向模式差异化支持正在进行中,但目前的重点是逆向模式实施的上游并首先对其进行改进。作为免责声明,我在 Swift for TensorFlow 团队工作。

于 2020-04-14T16:43:02.110 回答