deepxde
DeepXde是科学机器学习和物理知识学习的图书馆。 DEEPXDE包括以下算法:
- 物理信息神经网络(PINN)
- 解决不同的问题
- 求解前向/逆普通/部分差分方程(ODES/PDES)[SIAM REV.]
- 求解向前/反向差异方程(IDES)[SIAM REV.]
- FPINN:求解前向/反向分数PDE(FPDES)[Siam J. Sci。计算。]
- NN-肢体多项式混乱(NN-APC):向前/逆随机PDES(SPDES)[J.计算。物理。]
- 具有硬约束(HPINN)的PINN:解决逆设计/拓扑优化[Siam J. Sci。计算。]
- 提高Pinn的精度
- 基于残留的自适应抽样[Siam Rev.,Comput。方法应用。机械。 Eng。]
- 梯度增强的PINN(GPINN)[COMPER。方法应用。机械。 Eng。]
- 具有多尺度傅立叶功能的PINN [COMPER。方法应用。机械。 Eng。]
- 幻灯片,视频,视频中文
- (物理信息)深度操作员网络(DeepOnet)
- DeWonet:学习操作员[Nat。马赫。 Intell。]
- deponet扩展,例如,pod-deeponet [Comput。方法应用。机械。 Eng。]
- Mionet:学习多输入操作员[Siam J. Sci。计算。]
- 傅立叶深色[Comput。方法应用。机械。 Eng。
- 物理知识的deponet [Sci。顾问]
- 多限制deponet [Phys。 Rev. Research]
- DEEPM&MNET:解决多物理和多尺度问题[J.计算。 Phys。,J。Comput。物理。]
- 可靠的外推[计算。方法应用。机械。 Eng。]
- 多重神经网络(MFNN)
- 从多重级数据中学习[J.计算。 Phys。,PNAS]
DEEPXDE支持五个张量库作为后端:TensorFlow 1.x( tensorflow.compat.v1 in Tensorflow 2.x),Tensorflow 2.x,Pytorch,jax,jax和paddlepaddle。有关如何选择一个,请参阅使用不同的后端。
文档:readthedocs




特征
DeepXDE实施了许多算法,如上所述,支持许多功能:
- 使用户代码紧凑,非常类似于数学公式。
- 复杂的域几何形状,无暴政网。原始几何形状是间隔,三角形,矩形,多边形,磁盘,椭圆形,星形,Cuboid,Sphere,Sphere,Hyper Cuber和Hypersphere。其他几何形状可以使用三个布尔操作:联合,差异和相交。 DEEPXDE还支持以点云为代表的几何形状。
- 5种边界条件(BCS):Dirichlet,Neumann,Robin,周期性和一般BC,可以在任意域或点集上定义;和硬约束的近似距离功能。
- 3自动分化方法(AD)计算衍生物的方法:反向模式(IE,反向传播),正向模式和零坐标偏移(ZCS)。
- 不同的神经网络:完全连接的神经网络(FNN),堆叠的FNN,残留神经网络,(时空)多尺度傅立叶特征网络等。
- 许多采样方法:均匀,伪兰顿,拉丁超立方体采样,霍尔顿序列,Hammersley序列和SOBOL序列。在训练期间,训练点可以保持不变,也可以(自适应地)重新采样。
- 4个功能空间:功率系列,Chebyshev多项式,高斯随机场(1d/2d)。
- 多个GPU的数据并行培训。
- 不同的优化器:Adam,L-BFGS等。
- 在训练过程中便利地保存模型,并加载训练有素的模型。
- 在培训期间监视模型的内部状态和统计数据的回调:早期停止等。
- 使用辍学的不确定性定量。
- Float16 , Float32和Float64 。
- 许多其他有用的功能:不同的(加权)损失,学习率时间表,指标等。
DeepXDE的所有组件都松散地耦合,因此DeepXDE结构良好且高度可配置。自定义DEEPXDE以满足新需求很容易。
安装
DeepXDE需要以下以下特定于后端的依赖项之一:
- TensorFlow 1.x:TensorFlow> = 2.7.0
- TensorFlow 2.x:TensorFlow> = 2.3.0,TensorFlow概率> = 0.11.0
- pytorch:pytorch> = 1.9.0
- JAX:JAX,亚麻,Optax
- PaddlePaddle:PaddlePaddle> = 2.6.0
然后,您可以安装DEEPXDE本身。
$ conda install -c conda-forge deepxde
- 对于开发人员,您应该将文件夹克隆到本地计算机上,并将其与项目脚本一起使用。
$ git clone https://github.com/lululxvi/deepxde.git
探索更多
- 安装和设置
- 功能近似的演示
- 前进问题的演示
- 反问题的演示
- 操作员学习的演示
- 常问问题
- 研究论文使用了Deepxde
- API
引用deepxde
如果您使用DeepXD进行学术研究,则鼓励您引用以下论文:
@article{lu2021deepxde,
author = {Lu, Lu and Meng, Xuhui and Mao, Zhiping and Karniadakis, George Em},
title = {{DeepXDE}: A deep learning library for solving differential equations},
journal = {SIAM Review},
volume = {63},
number = {1},
pages = {208-228},
year = {2021},
doi = {10.1137/19M1274067}
}
为DeepXde做出贡献
首先,感谢您抽出宝贵的时间做出贡献!
- 报告错误。要报告一个错误,只需在GitHub问题中打开一个问题即可。
- 建议增强。要提交有关DEEPXDE的增强建议,包括全新功能和对现有功能的较小改进,请通过在GitHub问题中打开问题让我们知道。
- 拉请求。如果您对DeepXDE进行了改进,修复了一个错误或有一个新的例子,请随时向我们发送抽拉活动。
- 问问题。为了获得有关如何使用DEEPXDE或其功能的帮助,您可以在GitHub讨论中进行讨论。
- 回答问题。如果您知道讨论中任何问题的答案,您将受到欢迎回答。
松弛。 DeepXDE Slack主持了一个中度到经验丰富的DeepXDE用户和开发人员的主要受众,以进行一般聊天,在线讨论,协作等。如果您需要Slack邀请,请给我发送电子邮件。
团队
Deepxde是由Lu Lu从2018年夏天到2020年在布朗大学的乔治·卡尼亚达基斯教授的监督下开发的。Deepxde最初以Sciconet的名称(科学计算神经网络)在Brown University的Subversion中自我主持。 2019年2月7日,Sciconet从颠覆到Github,重命名为DeepXde。
目前,耶鲁大学的卢卢(Lu Lu)维持DeepXde,其中有许多形式和手段的才华横溢的人提供了重大贡献。一个非避免但不断增长的清单需要提及:Paul Escapil-Inchauspé,Zongren Zou,Jialin Li,Saransh Chopra,Sensen HE,Vladimir Dudenkov,Anran Jiao,Zhongyi Jiang,Shunyuan Mao。
执照
LGPL-2.1许可证