gpt4 book ai didi

types - 如何使用 Flux.jl 绘制函数及其梯度/导数

转载 作者:行者123 更新时间:2023-12-01 09:55:41 31 4
gpt4 key购买 nike

我想使用 Flux.jl 绘制函数及其梯度和 Plots.jl

using Flux.Tracker
using Plots

f(x::Float64) = 3x^2 + 2x + 1
df(x::Float64) = Tracker.gradient(f, x)[1]
d2f(x::Float64) = Tracker.gradient(df, x)[1]

plot([f], -2, 2)
plot!([df], -2, 2)

我得到:
ERROR: LoadError: MethodError: no method matching Float64(::Flux.Tracker.TrackedReal{Float64})
Closest candidates are:
Float64(::Real, ::RoundingMode) where T<:AbstractFloat at rounding.jl:194
Float64(::T<:Number) where T<:Number at boot.jl:741
Float64(::Int8) at float.jl:60

所以我想这个想法是转换 Flux.Tracker.TrackedReal{Float64}Float64 .我怎么能做到?

最佳答案

您可以使用以下内容(在 Flux 0.8.3 下):

f(x::Float64) = 3x^2 + 2x + 1
df(x::Float64) = Tracker.data(Tracker.gradient(f, x, nest=true)[1])
d2f(x::Float64) = Tracker.data(Tracker.gradient(df, x, nest=true)[1])

关于types - 如何使用 Flux.jl 绘制函数及其梯度/导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57639612/

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