DeepXDE 项目介绍
概述
DeepXDE 是一个专为科学机器学习和物理信息学习设计的库。它致力于通过深度学习方法解决微分方程和多物理问题,在科学计算中具有广泛的应用。DeepXDE 的设计允许用户简单地表达复杂的问题,并通过灵活的配置和多样的特性来满足多种需求。
核心算法
物理信息神经网络(PINN)
物理信息神经网络(PINN)是一种用于解决微分方程的算法。DeepXDE 中实现了多种 PINN 技术:
- 普通/偏微分方程(ODEs/PDEs)的正向和逆向求解
- 积分-微分方程(IDEs)的求解
- 分数阶偏微分方程(fPDEs)的求解
- 随机偏微分方程(sPDEs)的求解
- 包含硬约束的 PINN,用于逆向设计和拓扑优化
此外,DeepXDE 还通过残差自适应采样和多尺度傅里叶特征等技术提高 PINN 的精度。
深度运算符网络(DeepONet)
DeepONet 是用于学习运算符的方法,支持多种扩展,例如:
- 多输入运算符学习,通过 MIONet 实现
- 使用傅里叶变换的扩展版本
- 用于多物理和多尺度问题的 DeepM&Mnet
多保真度神经网络(MFNN)
MFNN 主要用于从多保真度的数据中学习,帮助整合多种数据源来提高模型性能。
支持的特性
DeepXDE 提供了许多有用的特性,使用户能够更方便地使用深度学习进行科学计算:
- 支持复杂几何形状和多种边界条件
- 支持反向模式、前向模式和零坐标偏移(ZCS)等自动微分方法
- 提供多种神经网络结构和采样方法
- 支持数据并行训练、多种优化器的配置、模型存储和加载
- 包含不确定性量化、不同精度浮点数支持等特性
- 灵活的损失函数、学习率调度和度量标准定制
安装与使用
DeepXDE 支持多个后端,包括 TensorFlow、PyTorch、JAX 和 PaddlePaddle。用户可以根据自己偏好的框架选择对应的依赖项进行安装。借助 pip
或 conda
,用户可以轻松安装 Stable 版本的 DeepXDE:
$ pip install deepxde
或
$ conda install -c conda-forge deepxde
对于开发者,可以通过 Git 克隆直接下载源码进行开发使用。
贡献与社区
DeepXDE 鼓励社区成员通过报告漏洞、建议改进、提交代码贡献等方式参与项目发展。通过 GitHub 平台,用户可以随时提出问题、分享创意并参与讨论。此外,DeepXDE 还通过 Slack 频道聚集了一批经验丰富的用户和开发者,促进交流与合作。
开发团队
DeepXDE 由 Lu Lu 博士在布朗大学首次开发,目前由他在耶鲁大学继续维护。项目的发展离不开来自不同领域的多位才华横溢的个人贡献。DeepXDE 拥有 LGPL-2.1 许可证,确保其在开源社区中的广泛使用。
通过这深刻剖析和广泛特性支持,DeepXDE 已成为科学计算领域中重要的工具之一,为研究人员和工程师提供了强有力的支持。