Hi all, I am starting out in DiffEqSensitivity
, and I ran into the following issue.
When computing gradients as per the following example I get StackOverFlow
using ReverseDiff
using OrdinaryDiffEq
using DiffEqSensitivity
function ode!(derivative, state, parameters, t)
derivative .= parameters
end
function ode(state, parameters, t)
return ode!(similar(state), state, parameters, t)
end
function solve_euler(state, times, parameters)
problem = ODEProblem{true}(ode!, state, times[[1, end]], parameters; saveat=times, sensealg=ReverseDiffAdjoint())
return solve(problem, Euler(); dt=1e-1)
end
const initial_state = ones(2)
const solution_times = [1.0, 2.0]
ReverseDiff.gradient(p -> sum(sum(solve_euler(initial_state, solution_times, p))), zeros(2))
Passing a non-mutating ode (i.e. ODEProblem{false}(ode,..)
instead of ODEProblem{true}(ode!,...)
) results in no StackOverflow, but then the execution never finishes.
Any ideas what’s happening? Thanks!
I am on intel-based MacOS 12.6, Julia 1.7.3 (2022-05-06) and:
[41bf760c] DiffEqSensitivity v6.79.0
[0c46a032] DifferentialEquations v7.2.0
[37e2e3b7] ReverseDiff v1.14.1
1 Like
Is there any reason you can’t update this to SciMLSensitivity
? All of the tutorials and such have deprecated DiffEqSensitivity long ago IIRC, and the upgrade path is just a name change for most things.
Thanks, I was not aware of SciMLSensitivity! Unfortunately, even after using it, instead of DiffEqSensitivity, I still end up with the above issues.
For what its worth I started using DiffEqSensitivity due to this that currently mentions:
Installation
This functionality does not come standard with DifferentialEquations.jl. To use this functionality, you must install DiffEqSensitivity.jl:
]add DiffEqSensitivity
using DiffEqSensitivity
The above link was the first google result that came up on the search “differentialequations.jl sensitivity”
aha, it looks like that page never updated to its dev version: Local Sensitivity Analysis (Automatic Differentiation) · DifferentialEquations.jl . I’ll fix that.
Oh jeez, Actions · SciML/DiffEqDocs.jl · GitHub the docs got over some size limit so they weren’t deploying for months (but they were passing all doc build tests!). So sorry about that: that explains the uptick in questions! Thanks for helping to point this out.
1 Like
Thanks so much for the instant fix!