SciML / DiffEqFlux.jl

Pre-built implicit layer architectures with O(1) backprop, GPUs, and stiff+non-stiff DE solvers, demonstrating scientific machine learning (SciML) and physics-informed machine learning methods
https://docs.sciml.ai/DiffEqFlux/stable
MIT License
870 stars 155 forks source link

StackOverflow Error when Backproping through SteadyStateProblem #531

Closed QiyaoWei closed 3 years ago

QiyaoWei commented 3 years ago

Hi all,

I am trying to use DEQ models to fit 1 toy data point by wrapping the neural net in a SteadyStateProblem. However, when I run a piece of code like this

using Flux
using DiffEqSensitivity
using SteadyStateDiffEq
using DiffEqFlux
using OrdinaryDiffEq

u0 = Float32[0.0; 0.0]
tspan = (0.0f0, 10.0f0)

ann = FastChain(
  FastDense(4, 4, relu),
  FastDense(4, 4, tanh))

p1 = initial_params(ann)
n = length(p1)
ps = Float32[p1;u0]

function dudt_(du, u, p, t)
    # Solving the equation f(u) - u = du = 0
    du = ann(u, p[1:n]) - u
end

ode = ODEProblem(dudt_, u0, tspan, ps)
ss = SteadyStateProblem(ode)

function predict(x)
    Array(solve(ss, DynamicSS(Rodas5()), u0 = [u0;x], p = ps, sensealg=SteadyStateAdjoint()))
end

# https://medium.com/coffee-in-a-klein-bottle/deep-learning-with-julia-e7f15ad5080b
#Auxiliary functions for generating our data
function generate_real_data(n)
    x1 = rand(1,n) .- 0.5
    x2 = (x1 .* x1)*3 .+ randn(1,n)*0.1
    return vcat(x1,x2)
end
function generate_fake_data(n)
    θ  = 2*π*rand(1,n)
    r  = rand(1,n)/3
    x1 = @. r*cos(θ)
    x2 = @. r*sin(θ)+0.5
    return vcat(x1,x2)
end
# Creating our data
train_size = 1
real = generate_real_data(train_size)
fake = generate_fake_data(train_size)

# Organizing the data in batches
X    = hcat(real,fake)
temp = vcat(ones(train_size),zeros(train_size))
Y    = vcat(temp, temp, temp, temp)
data = Flux.Data.DataLoader((X, reshape(Y, 4, size(X)[2])), batchsize=1,shuffle=true)
opt = Descent(0.05)

function loss(x, y)
  ŷ = predict(x)
  sum((y .- ŷ).^2)
end

epochs = 100
for i in 1:epochs
    Flux.train!(loss, ps, data, opt)
    println(mean(ann(real)),mean(ann(fake))) # Print model prediction
end

I get the following error. Any help would be appreciated!

Error evaluating DEQ.jl

LoadError: StackOverflowError:
in expression starting at /Users/qiyaowei/cool_julia/DEQ.jl:68
show(io::IOBuffer, x::Type) at show.jl:814
print(io::IOBuffer, x::Type) at io.jl:35
print_to_string(xs::Type) at io.jl:135
string at io.jl:174 [inlined]
Symbol at basic.jl:229 [inlined]
issymbollike(x::CartesianIndex{2}) at solution_interface.jl:293
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:85
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex(A::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}, sym::CartesianIndex{2}) at solution_interface.jl:94
getindex at solution_interface.jl:94 [inlined]
iterate at abstractarray.jl:1096 [inlined]
iterate at abstractarray.jl:1094 [inlined]
copyto_unaliased!(deststyle::IndexLinear, dest::Matrix{Float64}, srcstyle::IndexCartesian, src::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}) at abstractarray.jl:975
copyto! at abstractarray.jl:950 [inlined]
copyto_axcheck! at abstractarray.jl:1056 [inlined]
Matrix{Float64}(x::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}) at array.jl:540
Array at boot.jl:472 [inlined]
adjoint at array.jl:8 [inlined]
_pullback(__context__::Zygote.Context, 486::Type{Array}, xs::SciMLBase.NonlinearSolution{Float64, 2, Matrix{Float64}, Matrix{Float64}, SteadyStateProblem{Matrix{Float64}, true, Vector{Float32}, ODEFunction{true, typeof(dudt_), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}}, DynamicSS{Rodas5{0, true, DefaultLinSolve, DataType}, Float64, Float64, Float64}, Nothing, Nothing}) at adjoint.jl:57
_pullback at DEQ.jl:32 [inlined]
_pullback(ctx::Zygote.Context, f::typeof(predict), args::Matrix{Float64}) at interface2.jl:0
_pullback at DEQ.jl:62 [inlined]
_pullback(::Zygote.Context, ::typeof(loss), ::Matrix{Float64}, ::Matrix{Float64}) at interface2.jl:0
_apply at boot.jl:804 [inlined]
adjoint at lib.jl:191 [inlined]
_pullback at adjoint.jl:57 [inlined]
_pullback at train.jl:102 [inlined]
_pullback(::Zygote.Context, ::Flux.Optimise.var"#38#44"{typeof(loss), Tuple{Matrix{Float64}, Matrix{Float64}}}) at interface2.jl:0
pullback(f::Function, ps::Zygote.Params) at interface.jl:247
gradient(f::Function, args::Zygote.Params) at interface.jl:58
macro expansion at train.jl:101 [inlined]
macro expansion at progress.jl:119 [inlined]
train!(loss::Function, ps::Vector{Float32}, data::Flux.Data.DataLoader{Tuple{Matrix{Float64}, Matrix{Float64}}, Random._GLOBAL_RNG}, opt::Descent; cb::Flux.Optimise.var"#40#46") at train.jl:99
train!(loss::Function, ps::Vector{Float32}, data::Flux.Data.DataLoader{Tuple{Matrix{Float64}, Matrix{Float64}}, Random._GLOBAL_RNG}, opt::Descent) at train.jl:97
top-level scope at DEQ.jl:69
eval at boot.jl:360 [inlined]
include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) at loading.jl:1094
ChrisRackauckas commented 3 years ago
using Flux
using DiffEqSensitivity
using SteadyStateDiffEq
using DiffEqFlux
using OrdinaryDiffEq
using Statistics

u0 = Float32[0.0; 0.0]
tspan = (0.0f0, 10.0f0)

ann = FastChain(
  FastDense(4, 4, relu),
  FastDense(4, 4, tanh))

p1 = initial_params(ann)
n = length(p1)
ps = Float32[p1;u0]

dudt_(u, p, t) = ann(u, p[1:n]) - u
# Or
#function dudt_(du, u, p, t)
    # Solving the equation f(u) - u = du = 0
#    du .= ann(u, p[1:n]) - u
#end

ode = ODEProblem(dudt_, u0, tspan, ps)
ss = SteadyStateProblem(ode)

function predict(x)
    Array(solve(ss, DynamicSS(Rodas5()), u0 = [u0;x], p = ps, sensealg=SteadyStateAdjoint()))
end

# https://medium.com/coffee-in-a-klein-bottle/deep-learning-with-julia-e7f15ad5080b
#Auxiliary functions for generating our data
function generate_real_data(n)
    x1 = rand(n) .- 0.5
    x2 = (x1 .* x1)*3 .+ randn(n)*0.1
    return vcat(x1,x2)
end
function generate_fake_data(n)
    θ  = 2*π*rand(n)
    r  = rand(n)/3
    x1 = @. r*cos(θ)
    x2 = @. r*sin(θ)+0.5
    return vcat(x1,x2)
end
# Creating our data
train_size = 1
real = generate_real_data(train_size)
fake = generate_fake_data(train_size)

# Organizing the data in batches
X    = hcat(real,fake)
temp = vcat(ones(train_size),zeros(train_size))
Y    = vcat(temp, temp, temp, temp)
data = Flux.Data.DataLoader((X, reshape(Y, 4, size(X)[2])), batchsize=1,shuffle=true)
opt = ADAM(0.05)

function loss(x, y)
  ŷ = predict(x)
  @show sum((y .- ŷ).^2)
end

epochs = 1000
for i in 1:epochs
    Flux.train!(loss, Flux.Params([ps]), data, opt)
    #println(mean(ann([u0;real],ps[1:n])),mean(ann([u0;fake],ps[1:n]))) # Print model prediction
end

Works. The main issue, that stack overflow, was a recently introduced issue with a quick fix: https://github.com/SciML/SciMLBase.jl/pull/56 which is now tagged. Other issues you had in here: