科技巨頭相繼開源釋出深度學習框架,其中Google今年進入正式版的TensorFlow,是GiHub上最受歡迎的機器學習專案。圖片來源/Google

從去年開始,不少科技巨頭紛紛投入開發深度學習框架,像是雲端廠商Google推出的TensorFlow,連社群網站龍頭臉書也釋出Torchnet和Caffe2,而微軟也推出Cognitive Toolkit(CNTK)來加入戰局。這三巨頭釋出的深度學習框架,在今年相繼推出了企業級的新功能。

Google推出最受歡迎的深度學習框架TensorFlow升級至1.2版

2015年底,Google開源釋出自家開發的深度學習框架TensorFlow,,才開源不到半年的時間,TensorFlow就已經成為GiHub上最受歡迎的機器學習專案,目前貢獻者已經將近千人。今年正式進入1.0,而且改版快速,才半年,目前TensorFlow已更新至1.2版。

Google以Apache 2.0授權模式開放TensorFlow函式庫、相關開發工具、說明文件、範例等資源,並邀請開發人員透過TensorFlow.org參與計畫。

TensorFlow可用於任何運算流程圖(Computational Flow Graph),另外自動微分(Auto-differentiation)和最佳化工具可用以改善梯度式機器學習演算法。

TensorFlow從0.8版就開始支援了分散式運算能力,TensorFlow可同時在數百臺機器上執行訓練程式,以建立各種機器學習模型,把原本需要耗費數天或數周的模型訓練縮短到數小時。

TensorFlow底層採用XLA,這是專為TensorFlow圖譜而設計的專用組譯器,效能大為提升,例如在8GPU機器上執行Inception v3 模型速度提升7.3倍,在64GPU環境下跑分散式Inception v3 模型訓練速度更增加到58倍,Google也會於近日將常見模型的實作公開出來。

此外,TensorFlow加入TensorFlow高階API如tf.layers、tf.metrics及tf.losses模組等,並加入tf.keras模組以便能相容於Keras高階神經網路函式庫。TensorFlow還修改Python API,讓TensorFlow與機器學習研發者常用的NumPy用法更相近,並強化穩定性、增加向後相容性等功能,讓開發人員在不影響現有程式碼的情況下,擴增新功能。

TensorFlow現已加入Python 3 Docker images,且PIP套件也相容PyPI,讓TensorFlow只要呼叫pip install tensorflow就可以安裝。目前Google已將TensorFlow更新至1.2版,在Windows環境也開始支援Python 3.6。

社群網站龍頭臉書則搶推輕量版深度學習框架Caffe2

臉書則是在去年6月時,開源了釋出深度學習開發框架Torchnet,藉此降低深度學習開發成本和困難度。Torchnet是以Lua語言撰寫而成,執行於標準x86晶片或GPU上,有助於節省I/O的成本。

Torchnet為深度學習函式庫Torch的框架,目前提供包括資料處理、機器學習的訓練和測試演算法、效能監測計Meter及建立一致性的Log等四個資源,旨在鼓勵程式碼再利用及模組化程式開發。

臉書日前在F8大會上發布了輕量級且模組化的深度學習框架Caffe2,相較於原版Caffe框架,Caffe2更具彈性且效能更好。同時,Caffe2也是臉書推出的第一個能在正式環境中部署的版本,目前已在GitHub上釋出Caffe2原始碼。

不僅如此,Caffe2也能在行動裝置上執行AI的工具,可以部署至iOS、Android和Raspberry Pi裝置,也就是說,使用者將能直接從行動裝置上取得圖像辨識、自然語言處理等功能。另外,Caffe2也支援Python和C++ API,以及整合Visual Studio、Android Studio和XCode開發環境,也能開發行動App。

而開發者也可以利用模型動物園(Model Zoo)中,由開發者社群提供的預先訓練模型(Pre-Trained Model)來快速打造自己的AI應用,如聊天機器人、物聯網、翻譯、語音辨識等應用,或是改進Model Zoo裡的模型,再發布一套新的機器學習模型。

微軟搶推企業級深度學習框架CNTK 2.0正式版

微軟則是去年1月於GitHub開源釋出自家深度學習框架Cognitive Toolkit(CNTK),其實微軟在2015年4月就曾釋出CNTK的原始碼,但當時專案還是由微軟旗下的Codeplex代管,主要供學術研究使用,採用較嚴苛的開放源碼授權,移放到GitHub代表任何有興趣的開發人員都能存取,可應用在深度學習與處理大量資料上。

今年CNTK 則進入號稱達到企業級功能的2.0版,包含了數百個新功能,使得深度學習的過程更簡便,並支援開源的類神經網路套件Keras和Java語言,微軟企圖將CNTK整合到AI的生態系中。

CNTK原本是為了加速訓練深度學習網路和其他機器學習模型,像是用搜尋引擎Bing搜尋影片的系統,或是能在對話中辨識語音的系統,其中CNTK的特色是可以部署於大型GPU叢集上。

2.0正式版本開始支援開源的類神經網路套件Keras,Keras是大多數開發人員在深度學習的應用上都會使用的套件,開發人員可以用Keras撰寫程式碼,並能享有認知工具包提供的高效率與速度,不需要改寫任何程式。另外,CNTK也會藉由支援Nvidia深度學習最新版本的SDK和最新的GPU架構Volta,來加速資料訓練的能力。

除了支援Keras之外,CNTK還支援Java,提供開發人員建立評估模型,就連資源有限的行動裝置,也能運行影像辨識,即時地訓練模型。

100項 IT人不可不知的AI發展

No.035 多套深度學習框架今年相繼進入正式版

No.036 主流AI框架紛紛支援GPU叢集

No.037 TensorFlow是最熱門開源深度學習框架

No.038 臉書輕量級深度學習框架Caffe2專用於行動裝置

No.039 微軟CNTK深度學習框架進入2.0版本鎖定企業級需求,大增上百項功能

 相關報導  AI 100(上)  AI 100 (下)

熱門新聞

Advertisement