Skip to content

Conversation

@ChrisRackauckas-Claude
Copy link
Contributor

Summary

  • Add Random.seed!(100) to the Lorenz System test to make neural network weight initialization deterministic
  • This prevents intermittent BFGS convergence failures due to unlucky random initialization
  • Consistent with other test items in the same file (e.g., direct_function_tests.jl already uses Random.seed!)

Problem

The Lorenz System test in NNPDE2 group was failing intermittently on CI. On the Feb 2 master CI run, all 26 jobs passed except Tests (1.11, NNPDE2) which failed with:

Test Failed at test/additional_loss_tests.jl:185
  Expression: sum(abs2, p_[1] - 10.0) < 100000.0
   Evaluated: 3.1761180413083304e6 < 100000.0

The BFGS optimizer converged to a bad local minimum because the random neural network weight initialization was non-deterministic.

Test plan

  • Verified locally: NNPDE2 test group passes (12/12 tests, 0 failures)
  • CI should pass on all test groups

🤖 Generated with Claude Code

The Lorenz System parameter estimation test in NNPDE2 was failing
intermittently because the neural network weight initialization used
a non-deterministic random seed, causing BFGS optimization to
sometimes converge to bad local minima. Add Random.seed!(100) for
reproducibility, consistent with other test items in this file.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ChrisRackauckas-Claude
Copy link
Contributor Author

CI Results

24/26 test jobs passed. The 2 failures are infrastructure issues, not test code issues:

  1. Tests (1.11, AdaptiveLoss): Failed to download GitHub Actions due to API rate limiting (HTTP 429). The lts version of the same test passed fine.
  2. Tests (lts, PDEBPINN): The "BPINN PDE Inv III: Improved Parametric Kuromo-Sivashinsky Equation solve" test timed out at 3600s on a slow self-hosted runner. The 1.11 version of the same test passed (59m32s). This test is inherently close to the timeout limit.

All actual test groups pass:

  • QA (both versions) ✅
  • NNODE, NNPDE1, NNPDE2, NNSDE ✅
  • DGM, Forward, IntegroDiff ✅
  • AdaptiveLoss, NeuralAdapter ✅
  • ODEBPINN, PDEBPINN (1.11), PINOODE ✅
  • Integration test, Spell check, Runic format ✅

Please re-run the failed jobs to confirm they're transient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants