Closed
Description
Describe the bug 🐞
UDE Training does not work with AutoZygote
Expected behavior
It should work.
Minimal Reproducible Example 👇
The lotka volterra test in tests/lotka_volterra.jl
Error & Stacktrace
julia> res = solve(op, Adam(), maxiters = 10)
ERROR: MethodError: no method matching length(::ModelingToolkit.MTKParameters{Tuple{Vector{Vector{Float64}}}, Tuple{}, Tuple{Vector{Float64}}, Tuple{}, Tuple{Vector{DataType}}, Nothing, Nothing})
Closest candidates are:
length(::LaTeXStrings.LaTeXString)
@ LaTeXStrings ~/.julia/packages/LaTeXStrings/ZtSdh/src/LaTeXStrings.jl:115
length(::SymbolicUtils.Code.Assignment)
@ SymbolicUtils ~/.julia/packages/SymbolicUtils/c0xQb/src/utils.jl:225
length(::CSTParser.EXPR)
@ CSTParser ~/.julia/packages/CSTParser/mVfZt/src/spec.jl:278
...
Stacktrace:
[1] automatic_sensealg_choice(prob::ODEProblem{…}, u0::Vector{…}, p::ModelingToolkit.MTKParameters{…}, verbose::Bool)
@ SciMLSensitivity ~/.julia/packages/SciMLSensitivity/rXkM4/src/concrete_solve.jl:84
[2] _concrete_solve_adjoint(::ODEProblem{…}, ::Rodas4{…}, ::Nothing, ::Vector{…}, ::ModelingToolkit.MTKParameters{…}, ::SciMLBase.ChainRulesOriginator; verbose::Bool, kwargs::@Kwargs{…})
@ SciMLSensitivity ~/.julia/packages/SciMLSensitivity/rXkM4/src/concrete_solve.jl:218
[3] _solve_adjoint(prob::ODEProblem{…}, sensealg::Nothing, u0::Vector{…}, p::ModelingToolkit.MTKParameters{…}, originator::SciMLBase.ChainRulesOriginator, args::Rodas4{…}; merge_callbacks::Bool, kwargs::@Kwargs{…})
@ DiffEqBase ~/.julia/packages/DiffEqBase/O8cUq/src/solve.jl:1537
[4] rrule(::typeof(DiffEqBase.solve_up), prob::ODEProblem{…}, sensealg::Nothing, u0::Vector{…}, p::ModelingToolkit.MTKParameters{…}, args::Rodas4{…}; kwargs::@Kwargs{…})
@ DiffEqBaseChainRulesCoreExt ~/.julia/packages/DiffEqBase/O8cUq/ext/DiffEqBaseChainRulesCoreExt.jl:26
[5] kwcall(::@NamedTuple{…}, ::typeof(ChainRulesCore.rrule), ::Zygote.ZygoteRuleConfig{…}, ::Function, ::ODEProblem{…}, ::Nothing, ::Vector{…}, ::ModelingToolkit.MTKParameters{…}, ::Rodas4{…})
@ ChainRulesCore ~/.julia/packages/ChainRulesCore/zgT0R/src/rules.jl:140
[6] chain_rrule_kw
@ ~/.julia/packages/Zygote/jxHJc/src/compiler/chainrules.jl:235 [inlined]
[7] macro expansion
@ ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0 [inlined]
[8] _pullback(::Zygote.Context{…}, ::typeof(Core.kwcall), ::@NamedTuple{…}, ::typeof(DiffEqBase.solve_up), ::ODEProblem{…}, ::Nothing, ::Vector{…}, ::ModelingToolkit.MTKParameters{…}, ::Rodas4{…})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:81
[9] _apply(::Function, ::Vararg{Any})
@ Core ./boot.jl:838
[10] adjoint
@ ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:203 [inlined]
[11] _pullback
@ ~/.julia/packages/ZygoteRules/M4xmc/src/adjoint.jl:67 [inlined]
[12] #solve#51
@ ~/.julia/packages/DiffEqBase/O8cUq/src/solve.jl:1003 [inlined]
[13] _pullback(::Zygote.Context{…}, ::DiffEqBase.var"##solve#51", ::Nothing, ::Nothing, ::Nothing, ::Val{…}, ::@Kwargs{…}, ::typeof(solve), ::ODEProblem{…}, ::Rodas4{…})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[14] _apply(::Function, ::Vararg{Any})
@ Core ./boot.jl:838
[15] adjoint
@ ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:203 [inlined]
[16] _pullback
@ ~/.julia/packages/ZygoteRules/M4xmc/src/adjoint.jl:67 [inlined]
[17] solve
@ ~/.julia/packages/DiffEqBase/O8cUq/src/solve.jl:993 [inlined]
[18] _pullback(::Zygote.Context{…}, ::typeof(Core.kwcall), ::@NamedTuple{…}, ::typeof(solve), ::ODEProblem{…}, ::Rodas4{…})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[19] loss
@ ./REPL[30]:5 [inlined]
[20] _pullback(::Zygote.Context{…}, ::typeof(loss), ::Vector{…}, ::Tuple{…})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[21] _apply
@ ./boot.jl:838 [inlined]
[22] adjoint
@ ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:203 [inlined]
[23] _pullback
@ ~/.julia/packages/ZygoteRules/M4xmc/src/adjoint.jl:67 [inlined]
[24] OptimizationFunction
@ ~/.julia/packages/SciMLBase/NjslX/src/scimlfunctions.jl:3649 [inlined]
[25] _pullback(::Zygote.Context{…}, ::OptimizationFunction{…}, ::Vector{…}, ::Tuple{…})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[26] _apply(::Function, ::Vararg{Any})
@ Core ./boot.jl:838
[27] adjoint
@ ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:203 [inlined]
[28] _pullback
@ ~/.julia/packages/ZygoteRules/M4xmc/src/adjoint.jl:67 [inlined]
[29] #37
@ ~/.julia/packages/OptimizationBase/rRpJs/ext/OptimizationZygoteExt.jl:90 [inlined]
[30] _pullback(ctx::Zygote.Context{false}, f::OptimizationZygoteExt.var"#37#55"{OptimizationFunction{…}, OptimizationBase.ReInitCache{…}}, args::Vector{Float64})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[31] _apply(::Function, ::Vararg{Any})
@ Core ./boot.jl:838
[32] adjoint
@ ~/.julia/packages/Zygote/jxHJc/src/lib/lib.jl:203 [inlined]
[33] _pullback
@ ~/.julia/packages/ZygoteRules/M4xmc/src/adjoint.jl:67 [inlined]
[34] #39
@ ~/.julia/packages/OptimizationBase/rRpJs/ext/OptimizationZygoteExt.jl:93 [inlined]
[35] _pullback(ctx::Zygote.Context{false}, f::OptimizationZygoteExt.var"#39#57"{Tuple{}, OptimizationZygoteExt.var"#37#55"{…}}, args::Vector{Float64})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface2.jl:0
[36] pullback(f::Function, cx::Zygote.Context{false}, args::Vector{Float64})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:90
[37] pullback
@ ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:88 [inlined]
[38] gradient(f::Function, args::Vector{Float64})
@ Zygote ~/.julia/packages/Zygote/jxHJc/src/compiler/interface.jl:147
[39] (::OptimizationZygoteExt.var"#38#56"{OptimizationZygoteExt.var"#37#55"{OptimizationFunction{…}, OptimizationBase.ReInitCache{…}}})(::Vector{Float64}, ::Vector{Float64})
@ OptimizationZygoteExt ~/.julia/packages/OptimizationBase/rRpJs/ext/OptimizationZygoteExt.jl:93
[40] macro expansion
@ ~/.julia/packages/OptimizationOptimisers/AOkbT/src/OptimizationOptimisers.jl:68 [inlined]
[41] macro expansion
@ ~/.julia/packages/Optimization/5DEdF/src/utils.jl:32 [inlined]
[42] __solve(cache::OptimizationCache{…})
@ OptimizationOptimisers ~/.julia/packages/OptimizationOptimisers/AOkbT/src/OptimizationOptimisers.jl:66
[43] solve!(cache::OptimizationCache{…})
@ SciMLBase ~/.julia/packages/SciMLBase/NjslX/src/solve.jl:180
[44] solve(::OptimizationProblem{…}, ::Adam; kwargs::@Kwargs{…})
@ SciMLBase ~/.julia/packages/SciMLBase/NjslX/src/solve.jl:96
[45] top-level scope
@ REPL[35]:1
Some type information was truncated. Use `show(err)` to see complete types.