隨機(jī)2D形狀周圍層流預(yù)測!基于飛槳實(shí)現(xiàn)圖形神經(jīng)網(wǎng)絡(luò)
項目背景
近年來,快速流場預(yù)測領(lǐng)域一直由基于像素的卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)主導(dǎo)。當(dāng) CFD 與基于 CNN 的神經(jīng)網(wǎng)絡(luò)模型耦合時,來自網(wǎng)格的數(shù)據(jù)必須在笛卡爾網(wǎng)格上進(jìn)行插值,然后再投影回網(wǎng)格。然而均勻笛卡爾網(wǎng)格的內(nèi)在幾何表示較差,相關(guān)的計算成本很大,并不適合快速流場預(yù)測。與 CNN 不同,圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolution Neural Network,GCNN)可以直接應(yīng)用于實(shí)體擬合的三角網(wǎng)格,從而與 CFD 求解器輕松耦合,解決上述問題。本項目選擇復(fù)現(xiàn)基于 GCNN 結(jié)構(gòu)的論文《Graph neural networks for laminar flow prediction around random two-dimensional shapes》,驗(yàn)證飛槳框架能夠基于 GCNN 模型實(shí)現(xiàn) 2D 障礙物周圍層流預(yù)測的能力。
開發(fā)環(huán)境與實(shí)現(xiàn)過程
01 開發(fā)環(huán)境
本文依托于飛槳框架2.4版本實(shí)現(xiàn) 2D 障礙物周圍層流預(yù)測的圖卷積神經(jīng)網(wǎng)絡(luò)??梢酝ㄟ^訪問飛槳官網(wǎng)的安裝文檔完成安裝。
02 實(shí)現(xiàn)過程
圖卷積神經(jīng)網(wǎng)絡(luò)的基本組成部分是卷積塊。卷積塊由一個兩步圖卷積層和一個兩步平滑層組成。

節(jié)點(diǎn)特征更新代碼如下:
邊特征更新代碼如下:

平滑層代碼如下:
下圖為論文中采用的網(wǎng)絡(luò)架構(gòu)圖,該架構(gòu)圖由圖卷積層和平滑層組成。輸入由三個圖像組成,8個卷積塊/平滑層堆疊形成圖卷積神經(jīng)網(wǎng)絡(luò),然后以1×1卷積作為輸出層。架構(gòu)中一個重要組成部分是從輸入圖到卷積塊的跳過連接。在每個平滑圖層之后,結(jié)點(diǎn)的坐標(biāo)將連接到結(jié)點(diǎn)要素。這些跳躍連接為公式中的邊緣卷積步驟提供空間信息。

網(wǎng)絡(luò)架構(gòu)代碼如下:
項目結(jié)果
為了展示復(fù)現(xiàn)的效果,我們使用復(fù)現(xiàn)模型對圓柱流場進(jìn)行預(yù)測,結(jié)果如下:

其中左側(cè)為論文原文中采用的真實(shí)流場,右側(cè)為我們復(fù)現(xiàn)的模型所預(yù)測的流場??梢娢覀兊玫降念A(yù)測值(右邊)與真實(shí)值(左邊)基本一致,模型精度很好。我們復(fù)現(xiàn)的模型在實(shí)驗(yàn)結(jié)果中的 MAE 為0.0046,與原論文的結(jié)果0.0043也非常接近,驗(yàn)證了飛槳框架能夠基于該模型實(shí)現(xiàn) 2D 障礙物周圍層流預(yù)測的能力。
心得體會
百度飛槳的論文復(fù)現(xiàn)比賽為我們團(tuán)隊提供了寶貴的學(xué)習(xí)和成長機(jī)會。這個比賽不僅讓我們深入了解流場預(yù)測這個細(xì)分領(lǐng)域,還鍛煉了我們團(tuán)隊合作和解決問題的能力?,F(xiàn)在回顧這次比賽,值得稱贊的地方有很多。
第一,飛槳官方強(qiáng)大的賽事組織能力,將比賽組織的規(guī)范和有序。從項目前期宣傳、隊伍報名、賽前講解、賽中答疑以及結(jié)果提交一環(huán)扣一環(huán),項目安排有序,每支隊伍都清楚每個階段該干什么。
第二,比賽中,飛槳科學(xué)計算團(tuán)隊的技術(shù)人員提供細(xì)致答疑。比賽要求我們仔細(xì)閱讀論文,并根據(jù)論文提供的參考代碼使用飛槳進(jìn)行復(fù)現(xiàn)。這個過程不僅需要我們對深度學(xué)習(xí)模型有深入的理解,也需要我們熟悉飛槳框架。作為一個新手,難免遇到各種各樣的技術(shù)問題,每次找飛槳技術(shù)人員,總能得到耐心細(xì)致的解答。除此之外,官方還會定期跟蹤復(fù)現(xiàn)的進(jìn)展情況,有問題立即為選手解決問題。
第三,參加飛槳的論文復(fù)現(xiàn)比賽也為我們打開了更廣闊的視野。通過此次比賽,我們有機(jī)會接觸到 AI for Science 這個領(lǐng)域很多優(yōu)秀論文。在復(fù)現(xiàn)實(shí)踐的過程中,我們深入研究了這些論文的方法和技術(shù),加深了我們對這個領(lǐng)域的理解,了解到了學(xué)術(shù)界的最新進(jìn)展和應(yīng)用。
最后,我要衷心感謝百度飛槳團(tuán)隊所有組織者和工作人員。他們的辛勤付出和專業(yè)支持使得這次比賽得以順利進(jìn)行。也要特別感謝陸林、汪璐、孔德天這些一起參加比賽的師兄弟,感謝我們團(tuán)隊中每一位成員的努力和奉獻(xiàn)。
未來,我們將繼續(xù)保持學(xué)習(xí)的態(tài)度,不斷探索和創(chuàng)新,爭取為推動該領(lǐng)域的發(fā)展做出貢獻(xiàn)。