摘要:近日,與微軟聯合推出了開放式神經網絡交換格式,它是一個表征深度學習模型的標準,可實現模型在不同框架之間的遷移。例如,在中,條件句通常是對輸入張量的大小或維度上的計算。
近日,Facebook 與微軟聯合推出了開放式神經網絡交換(ONNX)格式,它是一個表征深度學習模型的標準,可實現模型在不同框架之間的遷移。ONNX 是構建開源生態環境的第一步,供人工智能開發者輕松選擇并組合較先進的工具。
開發學習模型時,工程師和研究者有很多框架可以選擇。在一個項目開始時,開發者必須篩選特征、選定框架。很多時候,在研究和開發實驗時所選擇的特征與投入生產所需特征并不相同。很多組織缺乏彌補操作模式之間鴻溝的良好方式,不得不采取一些變通方式來應對,比如要求研究者在生產系統中工作或者手動翻譯模型。
我們與微軟一起開發了 ONNX,希望彌補這一鴻溝,幫助開發者選擇適合其項目當前階段的框架,并隨著項目的進展在框架之間輕松轉換。Caffe2、PyTorch 和 CNTK 9 月即將支持 ONNX,這允許模型在上述框架之一中進行訓練,并轉移到另一個框架進行推斷。我們誠邀人工智能社區一起支持 ONNX。實現不同框架之間的互通以及簡化從研究到生產的流程將會進一步加速人工智能社區的創新。
Facebook ONNX
ONNX 是 Facebook 深度學習方法中的重要組成部分。Facebook 的 AI 研究團隊(FAIR 和 AML)致力于擴展 AI 研究的邊界,開發更好的學習算法。每當我們有了突破,我們會盡快使使用我們應用程序的人們獲取更好的技術。有了 ONNX,我們可以讓全世界的 AI 研究和產品匯聚一堂,加快創新和部署。
研究者在實驗新模型,特別是模型還在研究中的時候,寫神經網絡時需要較大程度的靈活性和可表達性,從動態神經網絡到支持梯度漸變,同時還要保持基本的卷積神經網絡高效性。研究者還想要快速迭代,因此他們需要有優秀的交互開發和調試工具。PyTorch 的構建旨在擴展研究框架的極限,將研究者從單一平臺的束縛中解放出來,能夠更加輕松地表達自己的想法。
與此相反,產品管道在保證模型大體穩定的情況下,每天通過大量新數據運行訓練和推斷。通過一些精細的技巧比如分層,手動調整代碼以節省計算資源。Caffe2 在構建時就考慮了產品、移動端與表現。Caffe2 的內部構件非常靈活并經過了高度優化,因此我們可以在動力不足的硬件中駕馭更大更好用的模型,施展所有的技巧。
使用 ONNX,我們可以充分利用兩個世界。現在,我們可以從 PyTorch 中輸出很多常用神經網絡模型,并將其部署在 Caffe2 中。這是我們快速將研究成果投入生產的第一步。接下來幾個月,我們將改進 ONNX、Caffe2 和 PyTorch,使它們能夠更深度地進行互通。
工作原理
為了實現 ONNX 支持,我們必須改寫 PyTorch 和 Caffe2,統一框架之間的算子。在 Caffe2 中,該過程與添加翻譯器類似,因為 Caffe2 已經具備內置靜態圖表示。在 PyTorch 中,神經網絡被指定為程序,而不是清晰的圖,這帶來了巨大挑戰。為了從程序中抽取圖表示,我們開發了一個跟蹤器,用來」跟蹤」(記錄)程序運行過程。跟蹤程序可以消除復雜性,使轉換圖表示更加容易。
以下代碼展示了其工作原理:
x = y * 2if someComplicatedFunction():
?z = x + yelse:
?z = x * y
為了直接輸出代碼,ONNX 必須支持條件句(conditional)和 someComplicatedFunction();實際上,它就變成了一個通用的編程語言。但是,在很多深度學習模型中,someComplicatedFunction() 的結果在推斷中總是相同。例如,在 PyTorch 中,條件句通常是對輸入張量的大小或維度上的計算。在這些情況下,跟蹤代碼要簡單得多,也更容易在 ONNX 中得到表示:
#someComplicatedFunction() == True
x = y * 2
z = x + y
目前,我們的追蹤器用于很多常見神經網絡,但是不包括 PyTorch 中的一些較為高級的程序,如帶有動態流控制的程序。我們將不斷改進 ONNX 和跟蹤器來支持這些程序,這樣開發者就可以同時利用 PyTorch 的靈活性和 Caffe2 的高性能魯棒部署能力。
后續
今天,我們發布了 ONNX 支持的版 Caffe2 和 PyTorch,希望大家對新特征感興趣!由于其還處在初級階段,我們希望你在使用時能提供反饋和建議。我們將持續改進 ONNX、PyTorch 和 Caffe2,確保開發者獲取 AI 研究的工具。
開始使用 ONNX
ONNX(https://github.com/onnx)
Caffe2(https://caffe2.ai/)
PyTorch(http://pytorch.org/)
高分辨率教程(http://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html)
微軟博客(https://www.microsoft.com/en-us/cognitive-toolkit/blog/2017/09/microsoft-facebook-create-open-ecosystem-ai-model-interoperability/)
原文鏈接:https://research.fb.com/facebook-and-microsoft-introduce-new-open-ecosystem-for-interchangeable-ai-frameworks/
歡迎加入本站公開興趣群商業智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4610.html
摘要:但年月,宣布將在年終止的開發和維護。性能并非最優,為何如此受歡迎粉絲團在過去的幾年里,出現了不同的開源深度學習框架,就屬于其中典型,由谷歌開發和支持,自然引發了很大的關注。 Keras作者Fran?ois Chollet剛剛在Twitter貼出一張圖片,是近三個月來arXiv上提到的深度學習開源框架排行:TensorFlow排名第一,這個或許并不出意外,Keras排名第二,隨后是Caffe、...
摘要:詳細信息,可以參見科技評論之前發文微軟聯合推出標準,號稱要解決開發框架碎片化共筑開放生態標準得到華為英特爾等更多廠商支持日前,基礎平臺部副總在發文宣布,亞馬遜將加入開放生態,將對提供支持。 早前,FaceBook 攜手微軟發布了一個全新的開源項目——ONNX,欲借此打造一個開放的深度學習開發工具生態系統。之后,華為、IBM、英特爾、高通等紛紛宣布宣布支持 ONNX。詳細信息,可以參見AI科技...
摘要:在此,我們將借用和的算子,分析硬件加速的需求。池化層池化層主要用于尺度變換,提取高維特征。此種類型主要用于深度卷積神經網絡中卷積部分與部分的連接。和可以認為是的特例。 NNVM是由陳天奇團隊提出的一套可復用的計算流圖中間表達層,它提供了一套精簡的API函數,用以構建、表達和傳輸計算流圖,從而便于高層級優化。另外NNVM也可以作為多個深度學習框架的共享編譯器,可以優化、編譯和部署在多種不同的硬...
摘要:亞馬遜和華盛頓大學今天合作發布了開源的端到端深度學習編譯器。項目作者之一陳天奇在微博上這樣介紹這個編譯器我們今天發布了基于工具鏈的深度學習編譯器。陳天奇團隊對的性能進行了基準測試,并與進行了比較。 亞馬遜和華盛頓大學今天合作發布了開源的端到端深度學習編譯器NNVM compiler。先提醒一句,NNVM compiler ≠ NNVM。NNVM是華盛頓大學博士陳天奇等人2016年發布的模塊化...
摘要:截止到今天,已公開發行一周年。一年以來,社區中的用戶不斷做出貢獻和優化,在此深表感謝。所以與衡量它的指標包括在機器學習研究論文中的使用。來自香港科技大學的在上推出了面向普通觀眾的在線課程。 Yann LeCun Twitter截止到今天,PyTorch 已公開發行一周年。一年以來,我們致力于打造一個靈活的深度學習研究平臺。一年以來,PyTorch 社區中的用戶不斷做出貢獻和優化,在此深表感謝...
閱讀 2968·2023-04-25 19:45
閱讀 2690·2021-11-19 09:40
閱讀 690·2021-10-14 09:49
閱讀 2668·2021-09-30 09:47
閱讀 2201·2021-09-26 09:55
閱讀 1220·2021-09-22 16:01
閱讀 2809·2019-08-30 14:19
閱讀 706·2019-08-29 16:44