GPT-PINN架构
劳伦斯利弗莫尔实验室 DDPS 研讨会
Brown CRUNCH小组研讨会
Galerkin ROM 数值分析研讨会
物理信息神经网络 (PINN) 已证明自己是一个强大的工具,可以利用深度神经网络的表达能力和现代异构硬件的计算能力来获得非线性偏微分方程 (PDE) 的数值解。然而,它的训练仍然很耗时,特别是在多查询和实时模拟设置中,并且其参数化往往过于过度。在本文中,我们提出了生成式预训练 PINN(GPT-PINN)来缓解参数偏微分方程设置中的这两个挑战。 GPT-PINN 代表了参数系统的全新元学习范式。作为网络的网络,其外网络/元网络是超精简的,只有一个隐藏层的神经元数量显着减少。此外,每个隐藏神经元的激活函数都是在明智选择的系统配置下预先训练的(完整)PINN。元网络自适应地“学习”系统的参数依赖性,并一次“生长”这个隐藏层一个神经元。最后,通过包含在这组自适应选择的参数值下训练的极少数网络,元网络能够准确有效地为整个参数域的参数系统生成代理解决方案。
1 马萨诸塞大学达特茅斯分校数学系,马萨诸塞州北达特茅斯
KG/B:
Python = 3.11.4
NumPy = 1.24.3
PyTorch = 2.1.2+cu121
Matplotlib = 3.7.1
AC:
Python = 3.9.12
NumPy = 1.24.3
PyTorch = 2.3.1+cu118
TensorFlow = 2.10.0
Matplotlib = 3.9.0
不同软件包版本的组合可能会在几乎没有变化的情况下运行代码。
该代码的实现目的是主要在 GPU 上执行计算。 CPU计算可以完成,但是需要更长的时间。
Klein-Gordon、Allen-Cahn 和 Burgers 的方程文件目前可用。运行KG_main.py
、 B_main.py
或AC_main.py
(以及位于各自目录中的文件夹中的其他文件)将开始训练 full-PINN 和 GPT-PINN,将 GPT-PINN 隐藏层大小从1 至 15(克莱因-戈登)或 9(伯格斯和艾伦-卡恩)。然后根据各种参数对最终 GPT-PINN 进行测试,并且可以使用绘图文件( KG_plotting.py
、 B_plotting.py
或AC_plotting.py
)可视化训练和测试的结果。 PINN 或 GPT-PINN 中的各种参数可以在主文件中轻松更改。作为默认设置,一旦达到神经元总数,GPT-PINN 就会再次训练,以找到使用最终神经元数量获得的最大损失。这样做是为了提供有关 GPT-PINN 最终状态的更多信息。
克莱因戈登运行时间
汉堡的运行时间
艾伦-卡恩运行时间
您可以在下面找到 Bibtex 引文:
@article{chen2024gpt,
title={GPT-PINN: Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs},
author={Chen, Yanlai and Koohy, Shawn},
journal={Finite Elements in Analysis and Design},
volume={228},
pages={104047},
year={2024},
publisher={Elsevier}
}