超高解析度圖像資料經空間分區處理,並對應至網狀網路的各裝置上

為了要處理超高解析度醫療圖像資料,Google開發了一種空間資料分區(Spatial Partition)技術,在不犧牲圖像解析度的條件下,分析超高解析度圖像。Google使用Mesh-TensorFlow框架,大幅度推進極大量資料與模型平行化的處理能力。

Google提到,雖然大型卷積神經網路(CNN)模型現在可以在數分鐘內,使用數百萬個圖像資料進行訓練,但是要在卷積神經網路上,處理3D斷層掃描這類超高解析度圖像,仍然充滿困難。使用現有技術,記憶體需要託管至少32GB的中介資料,但是單個GPU或是TPU通常只有12到32GB的記憶體,而典型的處理方式,是分開處理圖像的補丁,不過這種方式卻會因為部分資訊缺失,使得效能不佳且實作複雜。

Google與Mayo Clinic合作發展的最新技術,能夠突破這些限制,研究人員實作了Halo Exchange演算法來跨空間分區處理卷積運算,以保留相鄰分區的關係。Google以Mesh-TensorFlow作為基礎,實作了高效能資料和模型平行運算。Mesh-TensorFlow是一個專門用於分散式深度學習的語言,可以根據用戶定義的圖像布局(Layout),分割張量到裝置網狀網路中。

Google舉例,當用戶以256個處理器建立16乘16的計算網狀網路,每個處理器內建兩個核心,使用者可以定義布局,將圖像對應到計算網狀網路(下圖),圖像空間維度X對應到處理器列(Row)上,而將圖像的空間維度Y對應至處理器行(Column),批次處理的維度也就是要同時處理的圖像分割(Segment)數,則對應到核心上。不過,Google表示,由於分區和訓練批次的分布,是在張量層級實作,因此實際上用戶不需要擔心這些實作細節。

在圖像執行卷積運算,通常會使用超出影格邊緣的過濾器,雖然在只處理單個圖像的時候,有需多方法可以解決這個問題,但是標準方法並沒有考慮,超出影格邊緣的分割圖像資訊,仍然是有用的資訊,Google提到,為了獲得準確的結果,對經空間分區且於處理器間重新分散的圖像,進行卷積運算,必須考慮每個圖像分割的鄰居。

Google的解決方案是實作稱為Halo Exchange的演算法,來處理圖像分割鄰居間的資料交換;在每次卷積運算之前,每個空間分區都會與鄰居交換邊距,以便有效地在邊緣擴展圖像分割。接下來,卷積運算會局部地應用到每個裝置上,確保整個圖像的卷積網路結果,無論有沒有空間分區都是相同的。

藉由這個技術,研究人員現在能以256向的模型平行化(Model Parallelism),使用每個維度超過512像素的3D圖像,來訓練3D U-Net,研究人員也已將這個框架用在肝腫瘤斷層掃瞄上,證明其可行性。同時Google也釋出基於Mesh-TensorFlow的框架,供研究社群使用。


Advertisement

更多 iThome相關內容