随机2D形状周围层流预测!基于飞桨实现图形神经网络
项目背景
近年来,快速流场预测领域一直由基于像素的卷积神经网络(Convolution Neural Network,CNN)主导。当 CFD 与基于 CNN 的神经网络模型耦合时,来自网格的数据必须在笛卡尔网格上进行插值,然后再投影回网格。然而均匀笛卡尔网格的内在几何表示较差,相关的计算成本很大,并不适合快速流场预测。与 CNN 不同,图卷积神经网络(Graph Convolution Neural Network,GCNN)可以直接应用于实体拟合的三角网格,从而与 CFD 求解器轻松耦合,解决上述问题。本项目选择复现基于 GCNN 结构的论文《Graph neural networks for laminar flow prediction around random two-dimensional shapes》,验证飞桨框架能够基于 GCNN 模型实现 2D 障碍物周围层流预测的能力。
开发环境与实现过程
01 开发环境
本文依托于飞桨框架2.4版本实现 2D 障碍物周围层流预测的图卷积神经网络。可以通过访问飞桨官网的安装文档完成安装。
02 实现过程
图卷积神经网络的基本组成部分是卷积块。卷积块由一个两步图卷积层和一个两步平滑层组成。

节点特征更新代码如下:
边特征更新代码如下:

平滑层代码如下:
下图为论文中采用的网络架构图,该架构图由图卷积层和平滑层组成。输入由三个图像组成,8个卷积块/平滑层堆叠形成图卷积神经网络,然后以1×1卷积作为输出层。架构中一个重要组成部分是从输入图到卷积块的跳过连接。在每个平滑图层之后,结点的坐标将连接到结点要素。这些跳跃连接为公式中的边缘卷积步骤提供空间信息。

网络架构代码如下:
项目结果
为了展示复现的效果,我们使用复现模型对圆柱流场进行预测,结果如下:

其中左侧为论文原文中采用的真实流场,右侧为我们复现的模型所预测的流场。可见我们得到的预测值(右边)与真实值(左边)基本一致,模型精度很好。我们复现的模型在实验结果中的 MAE 为0.0046,与原论文的结果0.0043也非常接近,验证了飞桨框架能够基于该模型实现 2D 障碍物周围层流预测的能力。
心得体会
百度飞桨的论文复现比赛为我们团队提供了宝贵的学习和成长机会。这个比赛不仅让我们深入了解流场预测这个细分领域,还锻炼了我们团队合作和解决问题的能力。现在回顾这次比赛,值得称赞的地方有很多。
第一,飞桨官方强大的赛事组织能力,将比赛组织的规范和有序。从项目前期宣传、队伍报名、赛前讲解、赛中答疑以及结果提交一环扣一环,项目安排有序,每支队伍都清楚每个阶段该干什么。
第二,比赛中,飞桨科学计算团队的技术人员提供细致答疑。比赛要求我们仔细阅读论文,并根据论文提供的参考代码使用飞桨进行复现。这个过程不仅需要我们对深度学习模型有深入的理解,也需要我们熟悉飞桨框架。作为一个新手,难免遇到各种各样的技术问题,每次找飞桨技术人员,总能得到耐心细致的解答。除此之外,官方还会定期跟踪复现的进展情况,有问题立即为选手解决问题。
第三,参加飞桨的论文复现比赛也为我们打开了更广阔的视野。通过此次比赛,我们有机会接触到 AI for Science 这个领域很多优秀论文。在复现实践的过程中,我们深入研究了这些论文的方法和技术,加深了我们对这个领域的理解,了解到了学术界的最新进展和应用。
最后,我要衷心感谢百度飞桨团队所有组织者和工作人员。他们的辛勤付出和专业支持使得这次比赛得以顺利进行。也要特别感谢陆林、汪璐、孔德天这些一起参加比赛的师兄弟,感谢我们团队中每一位成员的努力和奉献。
未来,我们将继续保持学习的态度,不断探索和创新,争取为推动该领域的发展做出贡献。