-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Customize backend for conditions #87
Conversation
This doesn't work with ArgumentError: Tuple contains 2 elements, must contain exactly 1 element
Stacktrace:
[1] only(x::Tuple{Float64, Float64})
@ Base.Iterators ./iterators.jl:1531
[2] (::AbstractDifferentiation.var"#14#16"{Vector{Float64}, ImplicitDifferentiation.var"#6#8"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ImplicitFunction{var"#forward#8", var"#conditions#9", IterativeLinearSolver, AbstractDifferentiation.ReverseRuleConfigBackend{ZygoteRuleConfig{Zygote.Context{false}}}}, Vector{Float64}}, Tuple{Vector{Float64}}})(::Float64, ::Vararg{Float64})
@ AbstractDifferentiation ~/.julia/packages/AbstractDifferentiation/eEkWP/src/AbstractDifferentiation.jl:172 I thought it might be linked to JuliaDiff/AbstractDifferentiation.jl#63 for Zygote but that may not explain the ReverseDiff aspect |
Also doesn't work with MethodError: no method matching (::ImplicitDifferentiation.var"#6#8"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ImplicitFunction{var"#forward#8", var"#conditions#9", IterativeLinearSolver, AbstractDifferentiation.FiniteDifferencesBackend{FiniteDifferences.AdaptedFiniteDifferenceMethod{5, 1, FiniteDifferences.UnadaptedFiniteDifferenceMethod{7, 5}}}}, Vector{Float64}})(::Vector{Float64}, ::Vector{Float64})
Closest candidates are:
(::ImplicitDifferentiation.var"#6#8")(::Any)
@ ImplicitDifferentiation ~/Work/GitHub/Julia/ImplicitDifferentiation.jl/src/operators.jl:11
Stacktrace:
[1] (::FiniteDifferences.var"#88#89"{ImplicitDifferentiation.var"#6#8"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ImplicitFunction{var"#forward#8", var"#conditions#9", IterativeLinearSolver, AbstractDifferentiation.FiniteDifferencesBackend{FiniteDifferences.AdaptedFiniteDifferenceMethod{5, 1, FiniteDifferences.UnadaptedFiniteDifferenceMethod{7, 5}}}}, Vector{Float64}}})(xs::Tuple{Vector{Float64}, Vector{Float64}})
@ FiniteDifferences ~/.julia/packages/FiniteDifferences/SDe8k/src/grad.jl:64
[2] jvp(fdm::FiniteDifferences.AdaptedFiniteDifferenceMethod{5, 1, FiniteDifferences.UnadaptedFiniteDifferenceMethod{7, 5}}, f::FiniteDifferences.var"#88#89"{ImplicitDifferentiation.var"#6#8"{Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ImplicitFunction{var"#forward#8", var"#conditions#9", IterativeLinearSolver, AbstractDifferentiation.FiniteDifferencesBackend{FiniteDifferences.AdaptedFiniteDifferenceMethod{5, 1, FiniteDifferences.UnadaptedFiniteDifferenceMethod{7, 5}}}}, Vector{Float64}}}, ::Tuple{Tuple{Vector{Float64}, Vector{Float64}}, Tuple{Float64, Float64}})
@ FiniteDifferences ~/.julia/packages/FiniteDifferences/SDe8k/src/grad.jl:59 |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #87 +/- ##
==========================================
+ Coverage 96.27% 96.44% +0.17%
==========================================
Files 9 9
Lines 161 169 +8
==========================================
+ Hits 155 163 +8
Misses 6 6
☔ View full report in Codecov by Sentry. |
Add a
conditions_backend
kwarg to theImplicitFunction
constructor to decide which backend will be used for condition differentiation.If
conditions_backend
isnothing
, the same backend will be used as for the implicit function.