You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Couldn't figure out how to do the correcf dispatching with sciml sensitivity stuff. We don't need to enable different sensitivity algorithms yet, just get the dispatching working correctly.
To get things working, it adds an rrule directly to the DiffEqBase.solve for the problem type (i.e. the signature is
function ChainRulesCore.rrule(::typeof(DiffEqBase.solve), prob::LinearStateSpaceProblem,
alg::DirectIteration, args...; kwargs...)
But ideally I believe this should be
function DiffEqBase._concrete_solve_adjoint(prob::LinearStateSpaceProblem, alg::DirectIteration,
sensealg, u0, p, args...; kwargs...)
And then the dispatches for the DiffEq.solve should take things through to that implementation which uses the ChainRulesCore.rrule(::typeof(DiffEqBase.solve), prob::DiffEqBase.DEProblem default implementaiton.
The problem isn't the concrete_solve_adjoint itself, but rather zygote problems with the solve, solve_up, or promotion on the model. Not exactly sure, but my gut says if those can be fixed it will dispatch to the _concrete_solve_adjoint specialization correctly.
See
Couldn't figure out how to do the correcf dispatching with sciml sensitivity stuff. We don't need to enable different sensitivity algorithms yet, just get the dispatching working correctly.
To get things working, it adds an rrule directly to the
DiffEqBase.solve
for the problem type (i.e. the signature isBut ideally I believe this should be
And then the dispatches for the DiffEq.solve should take things through to that implementation which uses the
ChainRulesCore.rrule(::typeof(DiffEqBase.solve), prob::DiffEqBase.DEProblem
default implementaiton.The problem isn't the concrete_solve_adjoint itself, but rather zygote problems with the solve, solve_up, or promotion on the model. Not exactly sure, but my gut says if those can be fixed it will dispatch to the
_concrete_solve_adjoint
specialization correctly.See
DifferenceEquations.jl/src/algorithms/linear.jl
Lines 31 to 38 in 4479a1a
The error if the built-in rrule is changed to the
_concrete_solve_adjoint
isBut the trouble seems to be at the
solve_up
call in https://github.com/SciML/DiffEqBase.jl/blob/master/src/solve.jl#L73 which has a comment about a different Zygote bug? Could be wrong.The text was updated successfully, but these errors were encountered: