# DiffEqFlux.sciml\_train doesn't accept an adtype

**URL:** https://discourse.julialang.org/t/diffeqflux-sciml-train-doesnt-accept-an-adtype/81688
**Category:** Modelling & Simulations
**Tags:** optimization, diffeqflux
**Created:** [May 25, 2022, 10:49pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-doesnt-accept-an-adtype/81688 "2022-05-25T22:49:28Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![mzhenirovskyy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mzhenirovskyy/32/7549_2.png) [@mzhenirovskyy](https://discourse.julialang.org/u/mzhenirovskyy)
#### Post date: [May 25, 2022, 10:49pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-doesnt-accept-an-adtype/81688/1 "2022-05-25T22:49:28Z")

</div>

This code works OK

```julia
using DifferentialEquations, DiffEqFlux, GalacticOptim

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

u0 = [1.0, 1.0]
tspan = (0.0, 10.0)
tsteps = 0.0:0.1:10.0
p = [1.5, 1.0, 3.0, 1.0]

prob = ODEProblem(lotka_volterra!, u0, tspan, p)

function loss1(p)
  sol = solve(prob, Tsit5(), p=p, saveat = tsteps)
  loss1 = sum(abs2, sol.-1)
  return loss1
end

result = DiffEqFlux.sciml_train(loss1, p)

```

But in the case of the explicit setup of **adtype** I get an error:

```julia
result = DiffEqFlux.sciml_train(loss1, p, adtype=GalacticOptim.AutoZygote())

```

> ERROR: MethodError: no method matching Optim.Options(; extended\_trace=true, adtype=GalacticOptim.AutoZygote(), callback=GalacticOptimJL.var"#\_cb#11"{DiffEqFlux.var"#86#93", BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Float64, Flat}, Base.Iterators.Cycle{Tuple{GalacticOptim.NullData}}}(DiffEqFlux.var"#86#93"(), BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Float64, Flat}(LineSearches.InitialStatic{Float64}  
> alpha: Float64 1.0  
> scaled: Bool false  
> , LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}  
> delta: Float64 0.1  
> sigma: Float64 0.9  
> alphamax: Float64 Inf  
> rho: Float64 5.0  
> epsilon: Float64 1.0e-6  
> gamma: Float64 0.66  
> linesearchmax: Int64 50  
> psi3: Float64 0.1  
> display: Int64 0  
> mayterminate: Base.RefValue{Bool}  
> , nothing, 0.01, Flat()), Base.Iterators.Cycle{Tuple{GalacticOptim.NullData}}((GalacticOptim.NullData(),)), Core.Box(#undef), Core.Box(GalacticOptim.NullData()), Core.Box(2)))  
> Closest candidates are:  
> Optim.Options(; x\_tol, f\_tol, g\_tol, x\_abstol, x\_reltol, f\_abstol, f\_reltol, g\_abstol, g\_reltol, outer\_x\_tol, outer\_f\_tol, outer\_g\_tol, outer\_x\_abstol, outer\_x\_reltol, outer\_f\_abstol, outer\_f\_reltol, outer\_g\_abstol, outer\_g\_reltol, f\_calls\_limit, g\_calls\_limit, h\_calls\_limit, allow\_f\_increases, allow\_outer\_f\_increases, successive\_f\_tol, iterations, outer\_iterations, store\_trace, trace\_simplex, show\_trace, extended\_trace, show\_every, callback, time\_limit) at C:\Users\mzhen.julia\packages\Optim\6Lpjy\src\types.jl:73 got unsupported keyword argument “adtype”  
> Optim.Options(::T, ::T, ::T, ::T, ::T, ::T, ::T, ::T, ::T, ::T, ::T, ::T, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool, ::Bool, ::Bool, ::Int64, ::TCallback, ::Float64) where {T, TCallback} at C:\Users\mzhen.julia\packages\Optim\6Lpjy\src\types.jl:44 got unsupported keyword arguments “extended\_trace”, “adtype”, “callback”  
> Stacktrace:  
> [1] kwerr(kw::NamedTuple{(:extended\_trace, :adtype, :callback), Tuple{Bool, GalacticOptim.AutoZygote, GalacticOptimJL.var"#\_cb#11"{DiffEqFlux.var"#86#93", BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Float64, Flat}, Base.Iterators.Cycle{Tuple{GalacticOptim.NullData}}}}}, args::Type)  
> @ Base .\error.jl:163

Any idea how to fix it?

Thanks!

---

<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: [May 29, 2022, 1:35pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-doesnt-accept-an-adtype/81688/2 "2022-05-29T13:35:22Z")

</div>

[https://diffeqflux.sciml.ai/dev/sciml\_train/](https://diffeqflux.sciml.ai/dev/sciml_train/)

It’s documented as a positional, not a keyword, argument.

```julia
result = DiffEqFlux.sciml_train(loss1, p, ADAM(0.1), GalacticOptim.AutoZygote())

```

---

<div class="post-metadata">

### Author: ![mzhenirovskyy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mzhenirovskyy/32/7549_2.png) [@mzhenirovskyy](https://discourse.julialang.org/u/mzhenirovskyy)
#### Post date: [June 2, 2022, 6:43pm UTC](https://discourse.julialang.org/t/diffeqflux-sciml-train-doesnt-accept-an-adtype/81688/3 "2022-06-02T18:43:34Z")

</div>

Thank you @ChrisRackauckas. It helped!
