# DiffEqFlux.sciml\_train fails with save\_idxs keyword

**URL:** <https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864>\
**Category:** Optimization (Mathematical)\
**Tags:** diffeq\
**Created:** [March 10, 2021, 9:35am UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864 "2021-03-10T09:35:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![moesphere](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moesphere/32/3348_2.png) [@moesphere](https://discourse.julialang.org/u/moesphere)\
**Post date:** [March 10, 2021, 9:35am UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864/1 "2021-03-10T09:35:11Z")

</div>

Training via DiffEqFlux fails when `save_idxs` keyword is used within the loss function. Differentiation seems to be the problem. Evaluation of the loss function works fine.

MWE is taken from the docs

```julia
using DifferentialEquations, Flux, Optim, DiffEqFlux

function lotka_volterra!(du, u, p, t)
  x, y = u
  α, β, δ, γ = p
  du[1] = dx = α*x - β*x*y
  du[2] = dy = -δ*y + γ*x*y
end

# Initial condition
u0 = [1.0, 1.0]

# Simulation interval and intermediary points
tspan = (0.0, 10.0)
tsteps = 0.0:0.1:10.0

# LV equation parameter. p = [α, β, δ, γ]
p = [1.5, 1.0, 3.0, 1.0]

# Setup the ODE problem, then solve
prob = ODEProblem(lotka_volterra!, u0, tspan, p)

function loss(p)
  sol = solve(prob, Tsit5(), p=p, save_idxs=[2], saveat = tsteps)
  loss = sum(abs2, sol.-1)
  return loss, sol
end

result_ode = DiffEqFlux.sciml_train(loss, p, ADAM(0.1), maxiters = 100)

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 18, 2021, 12:15pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864/2 "2021-03-18T12:15:08Z")

</div>

Open an issue.

---

<div class="post-metadata">

**Author:** ![moesphere](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/moesphere/32/3348_2.png) [@moesphere](https://discourse.julialang.org/u/moesphere)\
**Post date:** [April 20, 2021, 5:43pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864/3 "2021-04-20T17:43:34Z")

</div>

Done, see [here](https://github.com/SciML/DiffEqFlux.jl/issues/534).

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 22, 2021, 7:39am UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-fails-with-save-idxs-keyword/56864/4 "2021-04-22T07:39:05Z")

</div>

Cool a fix is in [Fix array save\_idxs by ChrisRackauckas · Pull Request #408 · SciML/SciMLSensitivity.jl · GitHub](https://github.com/SciML/DiffEqSensitivity.jl/pull/408)
