DeepONet 深度算子网络入门
学习路径
阶段 1:理论(1–2 天)
核心思想: DeepONet = Branch Net(参数输入 u(x) 的编码)+ Trunk Net(空间坐标 t 的编码),两者做内积得到解算子 G(u)(t)。其理论基础是 Kolmogorov-Arnold 表示定理在神经网络中的离散化。
必读论文:
- Lu et al. “DeepONet: Learning nonlinear operators for inverse problems”(Nature Machine Intelligence 2021)
阶段 2:DeepXDE 实现(3–5 天)
DeepXDE(MIT License)是 DeepONet 与 PINN 最成熟的 Python 框架,支持多种算子与边界条件。
from deepxde.backend import tf
from deepxde.nn.tensorflow.fnn import FNN
# 支网络:编码函数 u(x)
branch = FNN([100, 128, 128, 128], "relu", "Glorot normal")
# 干网络:编码坐标 t
trunk = FNN([2, 128, 128, 128], "relu", "Glorot normal")
# 拼接入积分解算子
net = deepxde.nn.DeepONetOperator([100, 128, 128, 128], [2, 128, 128, 128])
学习顺序(DeepXDE 官方 Tutorial):
- Burgers 方程(1D 无粘)
- Porter 方程(参数化初边值)
- 随机微分方程(不确定性量化)
阶段 3:工业场景实战
- 参数化几何(多几何形状的力学响应预测)
- 多物理耦合(热-结构顺序耦合)
- 在 U-bend 数据集上做流场代理模型
与 FNO 的对比
| 特性 | DeepONet | FNO |
|---|---|---|
| 网格适应性 | ✅ 任意点评估 | ❌ 固定分辨率 |
| 参数化维度 | ✅ 高维参数 | ⚠️ 有限 |
| 训练效率 | ✅ 数据效率高 | ⚠️ 需大量数据 |
| 开源框架 | DeepXDE ✅ | NeuralOperator ✅ |
推荐资源
- DeepXDE 官方文档(中文友好)
- Lu et al. 2021 Nature MI 原文
- GitHub:
lululxvi/deepxde(Star 3k+,活跃维护)
标签: DeepONet神经算子DeepXDEPINN教程