DeepLagrangianFluids 项目使用教程
1. 项目介绍
DeepLagrangianFluids 是一个用于流体模拟的开源项目,基于连续卷积的拉格朗日流体模拟方法。该项目在 ICLR 2020 上发表,展示了如何使用连续卷积将粒子基的流体模拟网络训练为卷积神经网络(CNN)。通过该项目,用户可以生成数据、训练自己的模型或直接运行预训练模型。
2. 项目快速启动
2.1 环境准备
在开始之前,请确保您的系统满足以下依赖要求:
- TensorFlow 2.3 或 PyTorch 1.6
- Open3D 0.11 或更高版本(包含 ML 模块)
- SPlisHSPlasH 2.4.0(用于生成训练数据和流体粒子采样)
- Tensorpack DataFlow(用于读取数据,通过
pip install --upgrade git+https://github.com/tensorpack/dataflow.git
安装) - python-prctl(依赖于 libcap-dev,通过
apt install libcap-dev
安装) - msgpack 和 msgpack-numpy(通过
pip install msgpack msgpack-numpy
安装) - python-zstandard(通过
pip install zstandard
安装) - partio(用于粒子数据处理)
- SciPy
- OpenVDB(可选,用于创建表面网格)
- plyfile(可选,用于创建表面网格,通过
pip install plyfile
安装)
2.2 安装 Open3D
Open3D 的 ML 模块可以通过 pip 安装:
pip install open3d
确保您的 ML 框架版本与 Open3D 的 ML 操作版本匹配。对于 Open3D 0.11,建议使用 CUDA 10.1、TensorFlow 2.3 和 PyTorch 1.6。
2.3 运行预训练模型
下载项目代码并进入 scripts
目录:
git clone https://github.com/isl-org/DeepLagrangianFluids.git
cd DeepLagrangianFluids/scripts
使用 TensorFlow 运行预训练模型:
./run_network.py --weights pretrained_model_weights.h5 --scene example_scene.json --output example_out --write-ply train_network_tf.py
或使用 PyTorch 运行预训练模型:
./run_network.py --weights pretrained_model_weights.pt --scene example_scene.json --output example_out --write-ply train_network_torch.py
3. 应用案例和最佳实践
3.1 数据生成
在 datasets
目录下生成训练和验证数据:
cd datasets
./create_data.sh
3.2 训练模型
在 scripts
目录下训练模型:
cd scripts
# 使用 TensorFlow 训练
./train_network_tf.py default.yaml
# 使用 PyTorch 训练
./train_network_torch.py default.yaml
3.3 评估模型
评估训练好的模型:
./evaluate_network.py --trainscript train_network_tf.py --cfg default.yaml
# 或
./evaluate_network.py --trainscript train_network_torch.py --cfg default.yaml
4. 典型生态项目
- Open3D: 用于三维数据处理和可视化的开源库,支持深度学习操作。
- SPlisHSPlasH: 用于生成流体模拟数据的物理引擎。
- Tensorpack: 用于高效数据加载和处理的 Python 库。
- OpenVDB: 用于体积数据处理和网格生成的开源库。
通过这些生态项目的结合使用,DeepLagrangianFluids 能够实现高效的流体模拟和深度学习模型的训练。