Closed seadra closed 2 years ago
Need an adjoint for constructor SparseMatrixCSC{Complex{Float64},Int64}. Gradient is of type Array{Complex{Float64},2}
error(::String) at error.jl:33
(::Zygote.Jnew{SparseMatrixCSC{Complex{Float64},Int64},Nothing,false})(::Array{Complex{Float64},2}) at lib.jl:301
(::Zygote.var"#1727#back#165"{Zygote.Jnew{SparseMatrixCSC{Complex{Float64},Int64},Nothing,false}})(::Array{Complex{Float64},2}) at adjoint.jl:59
SparseMatrixCSC at sparsematrix.jl:32 [inlined]
(::typeof(∂(SparseMatrixCSC{Complex{Float64},Int64})))(::Array{Complex{Float64},2}) at interface2.jl:0
SparseMatrixCSC at sparsematrix.jl:45 [inlined]
(::typeof(∂(SparseMatrixCSC)))(::Array{Complex{Float64},2}) at interface2.jl:0
SparseMatrixCSC at sparsematrix.jl:580 [inlined]
(::typeof(∂(SparseMatrixCSC{Complex{Float64},Int64})))(::Array{Complex{Float64},2}) at interface2.jl:0
convert at sparsematrix.jl:603 [inlined]
(::typeof(∂(convert)))(::Array{Complex{Float64},2}) at interface2.jl:0
sparse at sparsematrix.jl:628 [inlined]
f_nn at test.jl:71 [inlined]
(::typeof(∂(f_nn)))(::Base.ReshapedArray{Complex{Float64},2,SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true},Tuple{}}) at interface2.jl:0
#749#back at adjoint.jl:59 [inlined]
#30 at derivative_wrappers.jl:290 [inlined]
(::typeof(∂(λ)))(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}) at interface2.jl:0
(::Zygote.var"#41#42"{typeof(∂(λ))})(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}) at interface.jl:40
_vecjacobian!(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},2}, ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},1}, ::Float64, ::DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}}, ::ZygoteVJP, ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Nothing) at derivative_wrappers.jl:292
_vecjacobian! at derivative_wrappers.jl:193 [inlined]
#vecjacobian!#20 at derivative_wrappers.jl:147 [inlined]
(::DiffEqSensitivity.var"#vecjacobian!##kw")(::NamedTuple{(:dgrad,),Tuple{SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}}}, ::typeof(DiffEqSensitivity.vecjacobian!), ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},2}, ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},1}, ::Float64, ::DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.Standard...
Looks like it's just missing adjoints for sparse. @DhairyaLGandhi didn't you work on these before?
Looks like https://github.com/FluxML/Zygote.jl/pull/762 wasn't merged, actually I could use a review there, it isn't clear why the gradient test should fail there, the adjoints seem to do what is expected of them
Fixed upstream.
I'm wondering if matrix ODEs with sparse matrices can be supported.
As a representative example, the following code fails:
with the error
Need an adjoint for constructor SparseMatrixCSC{Complex{Float64},Int64}. Gradient is of type Array{Complex{Float64},2}
.Stacktrace
[1] (::Zygote.Jnew{SparseMatrixCSC{Complex{Float64},Int64},Nothing,false})(::Array{Complex{Float64},2}) at /home/user/.julia/packages/Zygote/ggM8Z/src/lib/lib.jl:301 [2] (::Zygote.var"#1727#back#165"{Zygote.Jnew{SparseMatrixCSC{Complex{Float64},Int64},Nothing,false}})(::Array{Complex{Float64},2}) at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59 [3] SparseMatrixCSC at /build/julia/src/julia-1.5.3/usr/share/julia/stdlib/v1.5/SparseArrays/src/sparsematrix.jl:32 [inlined] [4] (::typeof(∂(SparseMatrixCSC{Complex{Float64},Int64})))(::Array{Complex{Float64},2}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [5] SparseMatrixCSC at /build/julia/src/julia-1.5.3/usr/share/julia/stdlib/v1.5/SparseArrays/src/sparsematrix.jl:45 [inlined] [6] (::typeof(∂(SparseMatrixCSC)))(::Array{Complex{Float64},2}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [7] SparseMatrixCSC at /build/julia/src/julia-1.5.3/usr/share/julia/stdlib/v1.5/SparseArrays/src/sparsematrix.jl:580 [inlined] [8] (::typeof(∂(SparseMatrixCSC{Complex{Float64},Int64})))(::Array{Complex{Float64},2}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [9] convert at /build/julia/src/julia-1.5.3/usr/share/julia/stdlib/v1.5/SparseArrays/src/sparsematrix.jl:603 [inlined] [10] (::typeof(∂(convert)))(::Array{Complex{Float64},2}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [11] sparse at /build/julia/src/julia-1.5.3/usr/share/julia/stdlib/v1.5/SparseArrays/src/sparsematrix.jl:628 [inlined] [12] f_nn at ./In[9]:11 [inlined] [13] (::typeof(∂(f_nn)))(::Base.ReshapedArray{Complex{Float64},2,SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true},Tuple{}}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [14] #747#back at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59 [inlined] [15] #30 at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/derivative_wrappers.jl:290 [inlined] [16] (::typeof(∂(λ)))(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [17] (::Zygote.var"#41#42"{typeof(∂(λ))})(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface.jl:40 [18] _vecjacobian!(::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},2}, ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Array{Complex{Float64},1}, ::Float64, ::DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}}, ::ZygoteVJP, ::SubArray{Complex{Float64},1,Array{Complex{Float64},1},Tuple{UnitRange{Int64}},true}, ::Nothing) at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/derivative_wrappers.jl:292 [19] _vecjacobian! at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/derivative_wrappers.jl:193 [inlined] [20] #vecjacobian!#20 at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/derivative_wrappers.jl:147 [inlined] [21] (::DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}})(::Array{Complex{Float64},1}, ::Array{Complex{Float64},1}, ::Array{Complex{Float64},1}, ::Float64) at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/interpolating_adjoint.jl:145 [22] ODEFunction at /home/user/.julia/packages/DiffEqBase/V7P18/src/diffeqfunction.jl:248 [inlined] [23] initialize!(::OrdinaryDiffEq.ODEIntegrator{Tsit5,true,Array{Complex{Float64},1},Nothing,Float64,Array{Complex{Float64},1},Float64,Float64,Float64,Array{Array{Complex{Float64},1},1},ODESolution{Complex{Float64},2,Array{Array{Complex{Float64},1},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},1},1},1},ODEProblem{Array{Complex{Float64},1},Tuple{Float64,Float64},true,Array{Complex{Float64},1},ODEFunction{true,DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}},UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Symbol,CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}},Tuple{Symbol},NamedTuple{(:callback,),Tuple{CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}}}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{true,DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}},UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},1},1},Array{Float64,1},Array{Array{Array{Complex{Float64},1},1},1},OrdinaryDiffEq.Tsit5Cache{Array{Complex{Float64},1},Array{Complex{Float64},1},Array{Complex{Float64},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}}},DiffEqBase.DEStats},ODEFunction{true,DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}},UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},OrdinaryDiffEq.Tsit5Cache{Array{Complex{Float64},1},Array{Complex{Float64},1},Array{Complex{Float64},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_NORM),typeof(opnorm),CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}},typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN),typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE),typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK),DataStructures.BinaryHeap{Float64,DataStructures.LessThan},DataStructures.BinaryHeap{Float64,DataStructures.LessThan},Nothing,Nothing,Int64,Array{Float64,1},Array{Complex{Float64},1},Tuple{}},Array{Complex{Float64},1},Complex{Float64},Nothing,OrdinaryDiffEq.DefaultInit}, ::OrdinaryDiffEq.Tsit5Cache{Array{Complex{Float64},1},Array{Complex{Float64},1},Array{Complex{Float64},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}}) at /home/user/.julia/packages/OrdinaryDiffEq/VPJBD/src/perform_step/low_order_rk_perform_step.jl:623 [24] __init(::ODEProblem{Array{Complex{Float64},1},Tuple{Float64,Float64},true,Array{Complex{Float64},1},ODEFunction{true,DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}},UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Symbol,CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}},Tuple{Symbol},NamedTuple{(:callback,),Tuple{CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}}}}},DiffEqBase.StandardODEProblem}, ::Tsit5, ::Tuple{}, ::Tuple{}, ::Tuple{}, ::Type{Val{true}}; saveat::Array{Complex{Float64},1}, tstops::Array{Float64,1}, d_discontinuities::Tuple{}, save_idxs::Nothing, save_everystep::Bool, save_on::Bool, save_start::Bool, save_end::Bool, callback::CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}}, dense::Bool, calck::Bool, dt::Float64, dtmin::Nothing, dtmax::Float64, force_dtmin::Bool, adaptive::Bool, gamma::Rational{Int64}, abstol::Float64, reltol::Float64, qmin::Rational{Int64}, qmax::Int64, qsteady_min::Int64, qsteady_max::Int64, qoldinit::Rational{Int64}, fullnormalize::Bool, failfactor::Int64, beta1::Nothing, beta2::Nothing, maxiters::Int64, internalnorm::typeof(DiffEqBase.ODE_DEFAULT_NORM), internalopnorm::typeof(opnorm), isoutofdomain::typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), unstable_check::typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), verbose::Bool, timeseries_errors::Bool, dense_errors::Bool, advance_to_tstop::Bool, stop_at_next_tstop::Bool, initialize_save::Bool, progress::Bool, progress_steps::Int64, progress_name::String, progress_message::typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), userdata::Nothing, allow_extrapolation::Bool, initialize_integrator::Bool, alias_u0::Bool, alias_du0::Bool, initializealg::OrdinaryDiffEq.DefaultInit, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/user/.julia/packages/OrdinaryDiffEq/VPJBD/src/solve.jl:406 [25] #__solve#391 at /home/user/.julia/packages/OrdinaryDiffEq/VPJBD/src/solve.jl:4 [inlined] [26] solve_call(::ODEProblem{Array{Complex{Float64},1},Tuple{Float64,Float64},true,Array{Complex{Float64},1},ODEFunction{true,DiffEqSensitivity.ODEInterpolatingAdjointSensitivityFunction{DiffEqSensitivity.AdjointDiffCache{Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool}},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats},Nothing,ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing}},UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Symbol,CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}},Tuple{Symbol},NamedTuple{(:callback,),Tuple{CallbackSet{Tuple{},Tuple{DiscreteCallback{DiffEqCallbacks.var"#33#38"{Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}},DiffEqCallbacks.var"#35#40"{Bool,DiffEqCallbacks.var"#37#42"{Bool},DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},Base.RefValue{Union{Nothing, Float64}},DiffEqCallbacks.var"#34#39"{DiffEqSensitivity.var"#94#96"{Base.RefValue{Int64},Array{Float64,1}},DiffEqSensitivity.var"#95#97"{DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon},InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Base.OneTo{Int64},UnitRange{Int64},UniformScaling{Bool},Bool,Nothing,Nothing,Nothing,Nothing,Bool,Array{Complex{Float64},1},Array{Float64,1},Array{Complex{Float64},2},Base.RefValue{Int64},Int64,UniformScaling{Bool}},Base.RefValue{Union{Nothing, Float64}}}}}}}}}},DiffEqBase.StandardODEProblem}, ::Tsit5; merge_callbacks::Bool, kwargs::Base.Iterators.Pairs{Symbol,Any,NTuple{6,Symbol},NamedTuple{(:save_everystep, :save_start, :saveat, :tstops, :abstol, :reltol),Tuple{Bool,Bool,Array{Complex{Float64},1},Array{Float64,1},Float64,Float64}}}) at /home/user/.julia/packages/DiffEqBase/V7P18/src/solve.jl:92 [27] #solve_up#461 at /home/user/.julia/packages/DiffEqBase/V7P18/src/solve.jl:114 [inlined] [28] #solve#460 at /home/user/.julia/packages/DiffEqBase/V7P18/src/solve.jl:102 [inlined] [29] _adjoint_sensitivities(::ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats}, ::InterpolatingAdjoint{0,true,Val{:central},Bool,Bool}, ::Tsit5, ::DiffEqSensitivity.var"#df#134"{Array{Array{Complex{Float64},2},1},Array{Complex{Float64},2},Colon}, ::Array{Float64,1}, ::Nothing; abstol::Float64, reltol::Float64, checkpoints::Array{Float64,1}, corfunc_analytical::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/sensitivity_interface.jl:23 [30] adjoint_sensitivities(::ODESolution{Complex{Float64},3,Array{Array{Complex{Float64},2},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},ODEProblem{Array{Complex{Float64},2},Tuple{Float64,Float64},false,Array{Complex{Float64},1},ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},DiffEqBase.StandardODEProblem},Tsit5,OrdinaryDiffEq.InterpolationData{ODEFunction{false,typeof(f_nn),UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},Array{Array{Complex{Float64},2},1},Array{Float64,1},Array{Array{Array{Complex{Float64},2},1},1},OrdinaryDiffEq.Tsit5ConstantCache{Complex{Float64},Float64}},DiffEqBase.DEStats}, ::Tsit5, ::Vararg{Any,N} where N; sensealg::InterpolatingAdjoint{0,true,Val{:central},Bool,Bool}, kwargs::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol,Symbol},NamedTuple{(:abstol, :reltol),Tuple{Float64,Float64}}}) at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/sensitivity_interface.jl:6 [31] (::DiffEqSensitivity.var"#adjoint_sensitivity_backpass#133"{Tsit5,InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},Array{Complex{Float64},1},Tuple{},Colon})(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/DiffEqSensitivity/ZdaQE/src/local_sensitivity/concrete_solve.jl:144 [32] #694#back at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:65 [inlined] [33] #150 at /home/user/.julia/packages/Zygote/ggM8Z/src/lib/lib.jl:191 [inlined] [34] (::Zygote.var"#1693#back#152"{Zygote.var"#150#151"{DiffEqBase.var"#694#back#474"{DiffEqSensitivity.var"#adjoint_sensitivity_backpass#133"{Tsit5,InterpolatingAdjoint{0,true,Val{:central},Bool,Bool},Array{Complex{Float64},2},Array{Complex{Float64},1},Tuple{},Colon}},Tuple{NTuple{6,Nothing},Tuple{Nothing}}}})(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59 [35] #solve#460 at /home/user/.julia/packages/DiffEqBase/V7P18/src/solve.jl:102 [inlined] [36] (::typeof(∂(#solve#460)))(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [37] (::Zygote.var"#150#151"{typeof(∂(#solve#460)),Tuple{NTuple{6,Nothing},Tuple{Nothing}}})(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/Zygote/ggM8Z/src/lib/lib.jl:191 [38] (::Zygote.var"#1693#back#152"{Zygote.var"#150#151"{typeof(∂(#solve#460)),Tuple{NTuple{6,Nothing},Tuple{Nothing}}}})(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59 [39] (::typeof(∂(solve##kw)))(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [40] predict_adjoint at ./In[9]:28 [inlined] [41] (::typeof(∂(predict_adjoint)))(::Array{Array{Complex{Float64},2},1}) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [42] loss_adjoint at ./In[9]:32 [inlined] [43] #150 at /home/user/.julia/packages/Zygote/ggM8Z/src/lib/lib.jl:191 [inlined] [44] (::Zygote.var"#1693#back#152"{Zygote.var"#150#151"{typeof(∂(loss_adjoint)),Tuple{Tuple{Nothing},Tuple{}}}})(::Float64) at /home/user/.julia/packages/ZygoteRules/OjfTt/src/adjoint.jl:59 [45] #74 at /home/user/.julia/packages/DiffEqFlux/8UHw5/src/train.jl:120 [inlined] [46] (::typeof(∂(λ)))(::Float64) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface2.jl:0 [47] (::Zygote.var"#54#55"{Params,Zygote.Context,typeof(∂(λ))})(::Float64) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface.jl:172 [48] gradient(::Function, ::Params) at /home/user/.julia/packages/Zygote/ggM8Z/src/compiler/interface.jl:49 [49] macro expansion at /home/user/.julia/packages/DiffEqFlux/8UHw5/src/train.jl:119 [inlined] [50] macro expansion at /home/user/.julia/packages/ProgressLogging/BBN0b/src/ProgressLogging.jl:328 [inlined] [51] (::DiffEqFlux.var"#73#78"{DiffEqFlux.var"#77#82",Int64,Bool,Bool,typeof(loss_adjoint),Array{Float32,1},Params})() at /home/user/.julia/packages/DiffEqFlux/8UHw5/src/train.jl:64 [52] with_logger at ./logging.jl:514 [inlined] [53] maybe_with_logger(::DiffEqFlux.var"#73#78"{DiffEqFlux.var"#77#82",Int64,Bool,Bool,typeof(loss_adjoint),Array{Float32,1},Params}, ::LoggingExtras.TeeLogger{Tuple{LoggingExtras.EarlyFilteredLogger{ConsoleProgressMonitor.ProgressLogger,DiffEqFlux.var"#68#70"},LoggingExtras.EarlyFilteredLogger{Base.CoreLogging.SimpleLogger,DiffEqFlux.var"#69#71"}}}) at /home/user/.julia/packages/DiffEqFlux/8UHw5/src/train.jl:39 [54] sciml_train(::Function, ::Array{Float32,1}, ::ADAM, ::Base.Iterators.Cycle{Tuple{DiffEqFlux.NullData}}; cb::Function, maxiters::Int64, progress::Bool, save_best::Bool) at /home/user/.julia/packages/DiffEqFlux/8UHw5/src/train.jl:63