ΦFlow 是一个开源的仿真工具包,专为优化和机器学习应用而构建。 它主要用 Python 编写,可以与 NumPy, PyTorch, Jax 或 TensorFlow 一起使用。 与这些机器学习框架的紧密集成使其能够利用它们的自动微分功能, 使得构建涉及学习模型和物理仿真的端到端可微函数变得容易。
示例
网格
网格
粒子
优化与网络
安装
使用 pip 在 Python 3.6 及以上版本进行安装:
$ pip install phiflow
此外安装 PyTorch、TensorFlow 或 Jax 以启用机器学习功能和 GPU 执行。 要启用网页用户界面,还可以安装 Dash。 为了达到最佳 GPU 性能,您可能需要编译自定义的 CUDA 操作符,详见 安装详细说明。
您可以运行
$ python3 -c "import phi; phi.verify()"
来验证您的安装。 这将检查兼容的 PyTorch、Jax 和 TensorFlow 安装。
特性
- 与 PyTorch、Jax 和 TensorFlow 紧密集成,可轻松进行神经网络训练,并支持完全可微分的模拟,可以在 GPU 上运行。
- 内置偏微分方程 (PDE) 操作,重点关注流体现象,允许运用简洁的方式进行模拟。
- 灵活、易于使用的 网络界面,具备实时可视化和交互控制功能,可以实时影响模拟或网络训练。
- 面向对象的向量化设计,可编写具有表现力的代码,易于使用,灵活且可扩展。
- 可重用的模拟代码,独立于后端和维度,换句话说,同样的代码可以使用 NumPy 运行 2D 流体模拟,也可以使用 TensorFlow 或 PyTorch 在 GPU 上运行 3D 流体模拟。
- 高级线性方程求解器,支持自动生成稀疏矩阵。
📖 文档与教程
文档概览 • ▶ YouTube 教程 • API • 演示 • 实验场 Φ-Flow 基于 ΦML 的张量功能。 要了解 ΦFlow 的工作原理,请首先查看命名和类型化维度。
入门
物理
场
几何
张量
其他
📄 引用
请使用以下引用:
@inproceedings{holl2024phiflow,
title={${\Phi}_{\text{Flow}}$ ({PhiFlow}): Differentiable Simulations for PyTorch, TensorFlow and Jax},
author={Holl, Philipp and Thuerey, Nils},
booktitle={International Conference on Machine Learning},
year={2024},
organization={PMLR}
}
出版物
我们很快会上传一篇白皮书。 同时,请引用 ICLR 2020 论文。
- Learning to Control PDEs with Differentiable Physics,Philipp Holl, Vladlen Koltun, Nils Thuerey,ICLR 2020。
- Solver-in-the-Loop: Learning from Differentiable Physics to Interact with Iterative PDE-Solvers,Kiwon Um, Raymond Fei, Philipp Holl, Robert Brand, Nils Thuerey,NeurIPS 2020。
- ΦFlow: A Differentiable PDE Solving Framework for Deep Learning via Physical Simulations,Nils Thuerey, Kiwon Um, Philipp Holl,NeurIPS 2020 的 DiffCVGP 研讨会。
- Physics-based Deep Learning (书籍),Nils Thuerey, Philipp Holl, Maximilian Mueller, Patrick Schnell, Felix Trost, Kiwon Um,NeurIPS 2020 的 DiffCVGP 研讨会。
- Half-Inverse Gradients for Physical Deep Learning,Patrick Schnell, Philipp Holl, Nils Thuerey,ICLR 2022。
- Scale-invariant Learning by Physics Inversion,Philipp Holl, Vladlen Koltun, Nils Thuerey,NeurIPS 2022。
基准和数据集
ΦFlow 已被用于创建各种公共数据集,如 PDEBench 和 PDEarena。
🕒 版本历史
版本历史 列出了自发布以来的所有主要变更。 这些发布版也列在 PyPI 上。
👥 贡献
欢迎贡献!查看 此文档 获取指南。
致谢
此工作由 ERC 启动拨款 realFlow (StG-2015-637014) 和 Intel 智能系统实验室支持。