From 51ec2c2150287d6ea31b50e0195b1d028ede0094 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 20 Mar 2025 13:50:55 -0100 Subject: [PATCH 1/4] Make DiffEqFlux test more robust --- test/diffeqfluxtests.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/diffeqfluxtests.jl b/test/diffeqfluxtests.jl index 2e5142991..c17fd5b50 100644 --- a/test/diffeqfluxtests.jl +++ b/test/diffeqfluxtests.jl @@ -99,13 +99,13 @@ prob = Optimization.OptimizationProblem(optprob, pp) result_neuralode = Optimization.solve(prob, OptimizationOptimisers.ADAM(), callback = callback, - maxiters = 300) + maxiters = 500) @test result_neuralode.objective≈loss_neuralode(result_neuralode.u)[1] rtol=1e-2 prob2 = remake(prob, u0 = result_neuralode.u) result_neuralode2 = Optimization.solve(prob2, BFGS(initial_stepnorm = 0.0001), callback = callback, - maxiters = 100) + maxiters = 300) @test result_neuralode2.objective≈loss_neuralode(result_neuralode2.u)[1] rtol=1e-2 @test result_neuralode2.objective < 10 From 5d357f0018ec3cc9c63883b37e45d1b2b1a9eb15 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 20 Mar 2025 15:44:15 -0100 Subject: [PATCH 2/4] Update diffeqfluxtests.jl --- test/diffeqfluxtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/diffeqfluxtests.jl b/test/diffeqfluxtests.jl index c17fd5b50..8234f0b0f 100644 --- a/test/diffeqfluxtests.jl +++ b/test/diffeqfluxtests.jl @@ -104,7 +104,7 @@ result_neuralode = Optimization.solve(prob, prob2 = remake(prob, u0 = result_neuralode.u) result_neuralode2 = Optimization.solve(prob2, - BFGS(initial_stepnorm = 0.0001), + BFGS(initial_stepnorm = 0.0001, allow_f_increases = true), callback = callback, maxiters = 300) @test result_neuralode2.objective≈loss_neuralode(result_neuralode2.u)[1] rtol=1e-2 From 3aba0911620d6f64554eeb1e1921e5edf2179476 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 20 Mar 2025 17:04:27 -0100 Subject: [PATCH 3/4] Update diffeqfluxtests.jl --- test/diffeqfluxtests.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/diffeqfluxtests.jl b/test/diffeqfluxtests.jl index 8234f0b0f..cd63a865a 100644 --- a/test/diffeqfluxtests.jl +++ b/test/diffeqfluxtests.jl @@ -104,8 +104,8 @@ result_neuralode = Optimization.solve(prob, prob2 = remake(prob, u0 = result_neuralode.u) result_neuralode2 = Optimization.solve(prob2, - BFGS(initial_stepnorm = 0.0001, allow_f_increases = true), + BFGS(initial_stepnorm = 0.0001), callback = callback, - maxiters = 300) + maxiters = 300, allow_f_increases = true) @test result_neuralode2.objective≈loss_neuralode(result_neuralode2.u)[1] rtol=1e-2 @test result_neuralode2.objective < 10 From 0d6ed49ee5e7df1ceb4e16f1e24034a3ee408c7b Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 20 Mar 2025 18:36:58 -0100 Subject: [PATCH 4/4] Update diffeqfluxtests.jl --- test/diffeqfluxtests.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/diffeqfluxtests.jl b/test/diffeqfluxtests.jl index cd63a865a..6ec24e2cd 100644 --- a/test/diffeqfluxtests.jl +++ b/test/diffeqfluxtests.jl @@ -70,7 +70,7 @@ ode_data = Array(solve(prob_trueode, Tsit5(), saveat = tsteps)) dudt2 = Lux.Chain(x -> x .^ 3, Lux.Dense(2, 50, tanh), Lux.Dense(50, 2)) -prob_neuralode = NeuralODE(dudt2, tspan, Tsit5(), saveat = tsteps) +prob_neuralode = NeuralODE(dudt2, tspan, Tsit5(), saveat = tsteps, abstol = 1e-8, reltol = 1e-8) pp, st = Lux.setup(rng, dudt2) pp = ComponentArray(pp) @@ -99,7 +99,7 @@ prob = Optimization.OptimizationProblem(optprob, pp) result_neuralode = Optimization.solve(prob, OptimizationOptimisers.ADAM(), callback = callback, - maxiters = 500) + maxiters = 1000) @test result_neuralode.objective≈loss_neuralode(result_neuralode.u)[1] rtol=1e-2 prob2 = remake(prob, u0 = result_neuralode.u)