一文教你如何選擇深度學習框架開啟AI研究

本文將指導您如何選擇合適的深度學習框架開展人工智能研究。

一文教你如何選擇深度學習框架開啟AI研究

深度學習框架正如一家雜貨店,當人們想要做一頓美餐的時候,想必沒有幾個人會親自到菜園裡種菜,而是選擇從市場裡購買食材。

正如想要炒菜的人不會親自去種菜採摘一樣,開發者們也不想每次搭建深度學習神經網絡的時侯都從零開始。

由於深度學習模型規模龐大且結構複雜,在編寫功能代碼的時候,程序員不會每種功能代碼都從頭編寫,而是會藉助框架和軟件庫來高效地構建神經網絡。頂級深度學習框架可提供專用於深度神經網絡計算的代碼,這些代碼均經過高度優化,並支持GPU計算。

深度學習框架之間的差異

不同類型的雜貨店通常都有其各自專營的特色商品。比如,當人們烹飪家常菜的時候,通常可以直接在當地市場買到所需的基礎食材;可是當人們想要製作具有異域風情的高級菜品的時候,則可能更喜歡在大型超市裡選購進口蔬菜,挑選未經人工催熟的有機水果;又或者,當您要為一大桌子人準備飯菜,您又有可能會選擇在批發市場裡採購一番。

同樣道理,雖然開發者可以基於任意一種深度學習框架構建出絕大多數類型的網絡(例如卷積神經網絡或遞歸神經網絡),但各個框架在可用示例的數量和更新頻率方面各有差異。此外,在增添新功能方面,各個深度學習框架中貢獻者的數量也彼此不同,而且框架通過API 提供功能的方式也同樣各具特色。

頂級框架都是開源的,其中大部分框架的發佈時間始於 2014 年,而且其開發工作一直都很活躍。

如何選擇深度學習框架

在選擇深度學習框架的時候,開發者們通常會有很多不同的考量,例如:框架前端與開發者專業技能的匹配程度,可獲取的社區支持力度,或他們感興趣的新功能的開發速度。

深度學習框架一般可以使用例如Python 或 C/C ++ 等編程語言中的腳本,通過命令訪問接口;也可以通過類似於 NVIDIA DIGITS 的圖形界面進行訪問,此類界面允許開發者在更加用戶友好的 Web 應用程序中構建深度神經網絡。

如果您希望將您的深度學習應用程序與 NVIDIA GPU 相集成的話,請查看 NVIDIA 開發者計劃以瞭解更多信息。

如何在深度學習框架之間遷移模型

根據其所開發應用程序的需要,開發者可能會首先使用一個框架來構建和訓練深度學習模型;然後再使用不同的框架對模型進行重新訓練,或者在不同的框架上部署該模型,以便進行推理。

一文教你如何選擇深度學習框架開啟AI研究

開放式神經網絡交換 (ONNX) 是一種允許開發者在框架之間遷移模型的深度學習模型格式。ONNX 支持在大多數主流框架之間進行模型遷移。當深度學習應用程序已經完成了訓練並可以部署時, TensorRT 軟件會對NVIDIA GPU 上的高性能推理模型進行優化。TensorRT 與 TensorFlow 和 MATLAB 高度集成,並且支持導入 ONNX 格式的深度學習模型。

以下列舉了一些熱門的深度學習框架,以及多家公司和研究人員如何構建用於醫療、災難預測和細胞生物學的GPU加速應用程序的案例。

Apache MXNet

一文教你如何選擇深度學習框架開啟AI研究

Apache MXNet 是由 Apache Software Foundation 於 2015 年創建的深度學習框架。一家位於西雅圖的初創公司——Magic AI, 正在利用深度學習模型來監控馬匹的健康狀況,該模型基於 MXNet 構建,並運行於 NVIDIA GPU 上。該神經網絡可以逐幀分析馬廄內的監控視頻,當出現意外狀況,例如:馬匹即將分娩,馬匹表現出絞痛症狀或陌生人進入馬廄時,該神經網絡會向馬場主發送警報。

開發者可以將模型遷移到 ONNX 進行推理,然後使用 NVIDIA TensorRT 進行優化和部署。

Caffe

一文教你如何選擇深度學習框架開啟AI研究

Caffe 深度學習框架於2014 年誕生在加州大學伯克利分校,並催生了 NVCaffe 等分支以及類似於 Facebook 的 Caffe2(現與 PyTorch 合併)的新型框架。肺癌是全球最常見的癌症,半數被診斷為肺癌的患者會在一年內死亡。藉助深度學習和 NVIDIA GPU,位於聖路易斯的初創公司 Innovation DX利用胸部 X 光掃描對肺癌進行早期篩查。他們的早期檢測工具由神經網絡和 Caffe 框架提供支持,可以使肺癌患者的存活率提高兩倍。

開發者可以利用 NVIDIA TensorRT 的內置 Caffe 模型導入器,對推理模型進行優化和部署。

Chainer

一文教你如何選擇深度學習框架開啟AI研究

Chainer 誕生於 2015 年,由日本風險投資公司Preferred Networks開發。利用這款基於 Python 的框架,Preferred Networks與工業自動化巨頭 FANUC 攜手合作,共同參加了 2016 年的亞馬遜分揀貨物挑戰賽 (Amazon Picking Challenge)。挑戰賽的內容是讓自主機器人分揀並放置物品。Preferred Networks 和 FANUC 在比賽中使用了卷積神經網絡和用於筆記本電腦的NVIDIA GeForce GTX 870M GPU,並最終取得了第二名的好成績。

開發者可以將模型遷移到 ONNX 進行推理,然後使用 NVIDIA TensorRT 進行優化和部署。

Keras

一文教你如何選擇深度學習框架開啟AI研究

Keras 是一個可以在多個框架上運行的界面,使用高級Python API ,它可以在諸如MXNet、TensorFlow、Theano 和 Microsoft Cognitive Toolkit等不同框架之上運行。Keras 由研究人員 FrançoisChollet 於 2014 年創建,旨在讓統一且抽象的 API 變得易於使用。一個韓國研究團隊使用 Keras 來提高颶風預測的速度和準確性。他們使用 TensorFlow 上的 Keras 構建了深度學習模型,並在 NVIDIA GPU 上運行,可以提前幾個小時預測風暴的路徑和降水量。由於這些神經網絡能夠提前預測風暴,因此他們可以在颶風來襲之前向當地居民發出警告,爭取更多的疏散時間。

MATLAB

一文教你如何選擇深度學習框架開啟AI研究

MATLAB 允許熟悉其軟件的工程師使用 MATLAB 代碼來開發深度學習工具。藉助MATLAB 和 NVIDIA GPU,阿爾伯塔大學的研究人員致力於幫助患者避免不必要的前列腺癌活檢。該團隊的深度學習模型對細胞外囊泡的生物標誌物數據進行分析,從而預判是否存在癌細胞。

在推理方面,開發者可以通過 MATLAB GPU Coder 使用 TensorRT 自動生成經過優化的推理引擎。

Microsoft Cognitive Toolkit

一文教你如何選擇深度學習框架開啟AI研究

這款由微軟公司於2014年推出的深度學習框架,起初被命名為CNTK, 其主要為微軟自己的AI模型(如 Cortana)提供支持。藉助NVIDIA Tesla GPU和 Microsoft Cognitive Toolkit,醫療科技公司 IRIS 專注於預防糖尿病視網膜病變或糖尿病引起的失明,此類疾病只能通過眼科檢查才能發現,患者很難自行判斷。而IRIS 的神經網絡可通過分析視網膜圖像,告知患者是否需要到專業醫師處就診。

開發者可以將模型遷移到 ONNX 進行推理,然後使用 NVIDIA TensorRT 進行優化和部署。

PyTorch

一文教你如何選擇深度學習框架開啟AI研究

PyTorch 的前身是 Torch,一種基於編程語言 Lua 的熱門深度學習框架,該框架於 2011 年推出。隨後,2017 年,Facebook 推出了 PyTorch,後者繼承了 Torch 的功能並可以在 Python 中實施。艾倫細胞科學研究所 (Allen Institute of Cell Science) 的研究人員利用 PyTorch 開發出了首個可預測人體活細胞的3D 模型,該模型由 NVIDIA DGX 工作站和 TITAN Xp GPU 提供支持,能夠讓科學家在虛擬環境中以數字方式實現細胞的可視化並操縱細胞行為。這款利用卷積神經網絡構建的細胞模型可以替代昂貴的熒光顯微鏡觀測,讓科學家能夠以一種前所未有的方式理解和預測細胞活動。

開發者可以將模型遷移到 ONNX 進行推理,然後使用 NVIDIA TensorRT 進行優化和部署。

TensorFlow

一文教你如何選擇深度學習框架開啟AI研究

TensorFlow 是 Google 於 2015 年創建的深度學習框架。德克薩斯大學 MD 安德森癌症中心的研究人員正在使用 TensorFlow 開發高精度放射治療技術。放射科醫師通常會檢查癌症患者的掃描圖像,以判斷在不損害正常組織的情況下應該使用多少輻射量來進行腫瘤靶向治療。藉助 NVIDIA Tesla GPU,研究人員開發了可學習並模仿醫生工作模式的深度學習模型,來識別放射目標區域。

在推理方面,開發者既可以使用 TensorFlow-TensorRT 集成功能優化 TensorFlow 中的模型;也可以導出 TensorFlow 模型,然後使用 NVIDIA TensorRT 的內置 TensorFlow 模型導入器在 TensorRT 中進行優化。。

廣泛的框架生態系統

一文教你如何選擇深度學習框架開啟AI研究

NVIDIA與上述諸多框架以及其他框架(如百度的 PaddlePaddle)合作,使深度學習應用程序得以成功實現。

新型深度學習框架正在不斷地湧現,這表明神經網絡得到了開發者的廣泛採用。Theano 和 Torch 這類早期框架為許多深度學習應用程序提供了支持,但其創建者在 2017 年宣佈,他們將不再繼續開發這些框架。

NVIDIA 的深度學習框架團隊直接參與了其中的多個開源項目,僅在去年,就做出了共計 800 多項貢獻,提高了這些項目的易用性和性能。

NGC 容器註冊表允許訪客即時訪問上述多種框架,並能夠按照訪客的需求,為其提供最佳的 GPU 加速性能。

瞭解更多有關深度學習框架的資源和安裝信息,請訪問 NVIDIA Developer 網站。該中心還為一些最常見的深度學習框架和應用程序提供示例神經網絡訓練腳本,例如計算機視覺、機器翻譯和對象檢測。在 NVIDIA GPU Cloud 目錄中還提供深度學習容器套件。


分享到:


相關文章: