飞桨AI for Science流体超分FNO模型案例分享

fa1af78de480b62cd269e90d65af0be7.gif

高分辨率的CFD计算十分耗时,且输出结果文件较大,一个瞬态的结果可以占用几百MB的存储空间。因此,批量化的高分辨率CFD计算,耗时更久,数据存储需求更大,限制了高分辨率CFD的实际使用。相反,低分辨率的CFD数据计算耗时短,数据存储量小,更加适合批量化生成,但是低分辨率的CFD精度往往不足,缺少流动的细节信息。而机器学习的模型推理速度非常快,若能够利用机器学习的方法提升低分辨率的CFD精度,训练好的模型就可以快速将低分辨率CFD的结果提升为高分辨率CFD的结果,解决上述问题。

5851a6dd3e82904fd2194b6da188e09a.png

(Fukami et al. 2023)

目前,流体超分主要采用生成对抗网络(GAN)和卷积神经网络(CNN),较少见到利用傅立叶卷积网络(FNO)实现的案例。FNO模型本身具有分辨率无关性的特点,是一种适合处理超分问题的模型。本文以气泡上升场景为例,介绍基于飞桨FNO模型开发的流体超分功能,抛砖引玉,希望更多的学者参与,一同攻克流体超分难题。

405bccb9257e07ec3dba76de1a5bdba3.png

飞桨AI for Science介绍

百度飞桨将AI方法应用于典型的科学与工程领域,促进数学、物理、化学、生物等多个学科的交叉融合。目前,针对通用物理科学、生物计算、量子机器学习领域发布了赛桨(PaddleScience)、螺旋桨(PaddleHelix)、量桨(Paddle Quantum)工具,并全量适配深度学习科学计算工具DeepXDE,提供数据驱动、数理融合、机理驱动等多种AI for Science方法模型,提供复杂外形障碍物绕流、结构应力应变分析、设备对流散热、材料分子模拟等丰富领域算例,广泛支持AI+计算力学、生物计算、量子计算等前沿方向的科研和产业应用。其中,AI for Science工具组件赛桨(PaddleScience)是国内首个基于AI框架的、公开且可应用于计算流体力学(CFD)领域的工具,提供端到端的应用API,重点围绕高水平科研活动场景,解决重大科研问题。

百度飞桨提供的自研科学计算套件PaddleScience实现了对PINN方法的全量支持,PaddleScience目前不仅支持自动(高阶)微分、数据并行、混合精度计算等,提供构建案例代码的简单组件,还实现了多领域的多种正、逆问题案例,同时提供详尽文档供用户和开发者使用及二次开发。

5a8b0f266308068b153a65e8b4aae47b.png

9ff7083797cb3a82e1f85d7a31c11e53.png

流体数据生成

在飞桨星河社区平台上调用第三方库taichi-2d-vof实现2D气泡在液体中上升的CFD模拟。该案例采用的CFD算法为VOF算法。

直接Fork项目(项目链接附在文后),安装第三方库Taichi,修改taichi-2d-vof包下的2dvof.py代码,便可以实现自定义网格、物理参数和迭代步数。其中,需要注意要通过调整迭代时间步的长短来匹配不同分辨率的网格。如果熟悉CFD,也可以自行编写求解代码,AI Studio提供CPU和GPU算力支持。

60fdd0ea0c2185a1c763ae2747a6fd2f.png

气泡上升案例的数据为低分辨率32x32,高分辨率128x128,分别有1000张不同时刻的图片。

694917488a5f98353f9caf2038a81ba6.png

ae93a8ac28655ed52ffa51b127e6f8e7.png

超分FNO模型原理

超分FNO是基于飞桨FNO模型开发的具有任意分辨率提升能力的模型。其原理为利用FNO模型的分辨率无关特性,在原始FNO模型的傅立叶卷积层(Fourier Layers)后接入逆傅立叶变换层(Inverse Fourier Layer)。数据处理的流程为:

1.输入低分辨率的空间域(Spatial Domain)数据;

2.经过FC全连接层,将输入数据提升为高维低分辨率;

3.然后输入傅立叶卷积层,在高维频域(Spectral Domain)进行学习;

最后通过逆傅立叶层,将高维频域的数据投影到空间域,且具有高分辨率。

7ccbbacc622bb4a98fe8bfbf9203da88.png

利用CFD生成的一定量低分辨率-高分辨率数据对(Image Pairs)训练FNO模型。训练好的模型可以批量化处理低分辨率数据,并快速推理得到高分辨率数据。在上述的气泡上升场景下,低分辨率的数据生成速度为每千张图片耗时12 分钟,而高分辨率的数据生成速度为每千张图片耗时60分钟。因为模型推理耗时可以忽略,所以相当于提升了5倍的数据生成速度。

训练好的模型推理结果如下(训练集上推理结果,与CFD高分结果基本一致)。

为了快速上手,建议使用少量数据进行训练。

a1b88c268d89ab5e7d6b7dc80b0e3fb8.png

未来,飞桨AI for Science将不断加大技术支持,为人工智能与力学科研发展赋能,汇聚科研成果、人才资源、产品创新,为AI for Science的发展提供坚实力量。

项目链接

https://aistudio.baidu.com/projectdetail/7451031(点击阅读原文跳转)

相关地址

  • AI Studio用户注册:https://aistudio.baidu.com/newbie

  • 飞桨深度学习与科学计算公开课:https://aistudio.baidu.com/course/introduce/29929

  • 飞桨PaddleScience工具组件github仓库:https://github.com/PaddlePaddle/PaddleScience

  • 飞桨PaddleScience工具组件官方文档:https://paddlescience-docs.readthedocs.io/zh/latest/

9d23892d5f4542db6efd4badaaf6ff16.png

756aa1b5cfa181a0e711390b9f8a2e05.png

dc23aea734a127842dc83fc124141ff7.png

8f9cf248cbbae6ca82c3126d5e4a83fc.png

7554213e4deda46f6cae7464a5e8d880.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 13:30:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 13:30:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 13:30:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 13:30:03       20 阅读

热门阅读

  1. 计算机网络总结

    2024-02-09 13:30:03       29 阅读
  2. GPT-3 训练自己的数据教程详解

    2024-02-09 13:30:03       30 阅读
  3. Mlflow部署的model server报错BAD_REQUEST

    2024-02-09 13:30:03       30 阅读
  4. k8s学习-Service Account和RBAC授权

    2024-02-09 13:30:03       21 阅读
  5. MySQL优化及索引

    2024-02-09 13:30:03       36 阅读
  6. Ubuntu下的磁盘管理,分区管理,挂载和卸载分区

    2024-02-09 13:30:03       30 阅读
  7. Android中AGP与Gradle、AS、JDK的版本关系

    2024-02-09 13:30:03       33 阅读
  8. re:从0开始的CSS学习之路 7. 盒子模型

    2024-02-09 13:30:03       32 阅读
  9. 寒假作业7

    2024-02-09 13:30:03       30 阅读
  10. Ubuntu 1804 And Above Coredump Settings

    2024-02-09 13:30:03       33 阅读