DifferentialEquations.jl与PyTorch的结合。
项目描述
diffeqtorch
通过PyTorch桥接DifferentialEquations.jl
。除了从DifferentialEquations.jl
中可用的广泛求解器中受益外,这还允许使用局部敏感性分析/自动微分通过求解器计算梯度。该包仅针对OD问题进行过测试,并且特别地,仅支持使用ForwardDiff.jl
的OD的自动微分。这可以在将来扩展,欢迎贡献。
示例
安装
使用diffeqtorch
的先决条件是安装Julia和Python。请注意,julia
的二进制目录需要位于您的PATH
中。
安装diffeqtorch
$ pip install diffeqtorch
$ export JULIA_SYSIMAGE_DIFFEQTORCH="$HOME/.julia_sysimage_diffeqtorch.so"
$ python -c "from diffeqtorch.install import install_and_test; install_and_test()"
我们建议使用包含依赖项的自定义Julia系统映像。通过设置环境变量JULIA_SYSIMAGE_DIFFEQTORCH
,将创建并自动使用映像。这可能需要一些时间,但之后将提高速度。
用法
from diffeqtorch import DiffEq
f = """
function f(du,u,p,t)
du[1] = p[1] * u[1]
end
"""
de = DiffEq(f)
u0 = torch.tensor([1.])
tspan = torch.tensor([0., 3.])
p = torch.tensor([1.01])
u, t = de(u0, tspan, p)
另请参阅help(DiffEq)
和notebooks/
中提供的示例。
许可
MIT