torchdiffeq Adams 方法 2 行上手显式 vs 隐式一个 method 参数切完【免费下载链接】torchdiffeqDifferentiable ODE solvers with full GPU support and O(1)-memory backpropagation.项目地址: https://gitcode.com/gh_mirrors/to/torchdiffeqtorchdiffeq 内置 Adams 方法是 ODE 线性多步法求解器。显式 Adams-Bashforth、隐式 Adams-Moulton 都有4-12 阶可选支持 GPU。 选型 30 秒显式还是隐式先看方程是否刚性右端变化极快、显式步长一放大就发散的 ODE。方程特性选哪个变化平缓、非刚性显式explicit_adamsAdams-Bashforth变化剧烈、刚性隐式implicit_adamsAdams-Moulton拿不准就用隐式更稳。最小可跑代码两行切换显式/隐式from torchdiffeq import odeint y_imp odeint(func, y0, t, methodimplicit_adams, options{max_order: 8, max_iters: 4}) y_exp odeint(func, y0, t, methodexplicit_adams)把 method 从implicit_adams换成explicit_adams就切到 Adams 方法的显式分支隐式默认多一道 Adams-Moulton 校正。源码速览fixed_adams.py 在做什么核心逻辑在 torchdiffeq/_impl/fixed_adams.py三件事阶数max_order支持 4-12低于 4 自动退回rk4自适应起步历史步长不足时先用 RK4攒够历史再升阶收敛检测隐式迭代按rtol/atol判断是否停下未收敛就告警并丢弃该步一个能跑的 Demo神经网络学 ODEexamples/ode_demo.py 用一个小网络拟合已知 ODE 的向量场跑 2000 步后相位图基本贴合真解。 调参 4 招阶数max_order4-12阶越高越准但每步多算历史项容差rtol/atol收紧到 1e-6/1e-8 提精度放松提速迭代上限隐式max_iters默认 4不够会告警并丢步GPUy0、t与网络权重放同一 device 即可上 CUDA两行代码跑完 Adams 方法选型看刚性细节进源码。需要仓库就git clone https://gitcode.com/gh_mirrors/to/torchdiffeq。【免费下载链接】torchdiffeqDifferentiable ODE solvers with full GPU support and O(1)-memory backpropagation.项目地址: https://gitcode.com/gh_mirrors/to/torchdiffeq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考