收到一个致命错误,提示“JVP 不存在。差异优先的差异化 API 是实验性的,不应使用。”

Adn*_*hid 2 xcode swift tensorflow swift-for-tensorflow

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

JVP does not exist. Differential-first differentiation APIs are experimental and should not be used.
Run Code Online (Sandbox Code Playgroud)

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

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

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

Bra*_*son 6

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

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

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