今日微軟和 Facebook 發布了一個全新的開源項目——ONNX,欲借此打造一個開放的深度學習開發工具生態係統。
ONNX 的全稱為“Open Neural Network Exchange”,即“開放的神經網絡切換”。顧名思義,該項目的目的是讓不同的神經網絡開發框架做到互通互用。目前,Microsoft Cognitive Toolkit,PyTorch 和 Caffe2 已宣布支持 ONNX。
ONNX 所針對的,可以說是深度學習開發生態中最關鍵的問題之一:
開發框架的碎片化。
在任意一個框架上訓練的神經網絡模型,無法直接在另一個框架上用。開發者需要耗費大量時間精力把模型從一個開發平台移植到另一個。
借助 ONNX,開發者能把在 PyTorch 上訓練的模型直接拿到 Caffe2 上進行推理。對於把模型從研究階段推向產品階段,這是一個經常遇到的場景。微軟宣布正積極開發 Microsoft Cognitive Toolkit 的下個版本,將會提供對 ONNX 的支持。
ONNX 的工作原理是:
實時跟蹤某個神經網絡是如何在這些框架上生成的,接著,使用這些信息創建一個通用的計算圖,即符合ONNX 標準的計算圖。這樣做行得通,是因為在計算方麵,這些框架產生的最終結果都非常接近,雖然更高級的表達不同。
ONNX 標準意味著什麼?
PyTorch、Microsoft Cognitive Toolkit 等框架提供的界麵,讓開發者創建、運行用來表示神經網絡的計算圖更加方便。雖然功能相似,但每一個框架都用一套不同的格式表示這些計算圖。獲知,ONNX 的表示方式有兩個核心優勢:
框架之間的互用互通
開發者能更方便地在不同框架間切換,為不同任務選擇最優工具。基本每個框架都會針對某個特定屬性進行優化,比如訓練速度、對網絡架構的支持、能在移動設備上推理等等。在大多數情況下,研發階段最需要的屬性和產品階段是不一樣的。這導致效率的降低,比如選擇不切換到最合適的框架,又或者把模型轉移到另一個框架導致額外的工作,造成進度延遲。使用支持 ONNX 表示方式的框架,則大幅簡化了切換過程,讓開發者的工具選擇更靈活。
優化共享
硬件設備商們推出的對神經網絡性能的優化,將能夠一次性影響到多個開發框架——如果用的是 ONNX 表示方式。如果優化很頻繁,把它們單獨整合到各個框架是個非常耗費時間的事。通過 ONNX 表示方式,更多開發者就能獲取這些優化。
技術概括
ONNX 為可擴展的計算圖模型、內部運算器(Operator)以及標準數據類型提供了定義。在初始階段,Facebook 和微軟會專注於推理(Inference)所需要的各項能力(評估)。
每個計算數據流圖以節點列表的形式組織起來,構成一個非循環的圖。節點有一個或多個的輸入與輸出。每個節點都是對一個運算器的調用。圖還會包含協助記錄其目的、作者等信息的元數據。
運算器在圖的外部實現,但那些內置的運算器可移植到不同的框架上。每個支持 ONNX 的框架將在匹配的數據類型上提供這些運算器的實現。
TensorFlow 的缺席
ONNX 標準能否在深度學習開發者們接受,在很大程度上將取決於它在各個框架上的普及程度。
在看來,目前 ONNX 最大的問題是,最受歡迎的開發框架 TensorFlow 沒有兼容 ONNX 標準。亞馬遜的禦用框架 MXNet 也沒有。Facebook 和微軟都表示,將來會持續有更多框架加入到 ONNX 生態中,但沒有透露 TensorFlow 和 MXNet 是否在計劃中。穀歌和亞馬遜也還沒有對此事表達態度,他們願不願意合作,尚屬未知。
如何使用
初始版 ONNX 的代碼、文件,已在 GitHub 上開源。Facebook 和微軟表示將會持續改進 ONNX, 將會在不久的將來推出範例、工具、reference implementations 以及模型。
更多關於 ONNX 的信息可訪問 Facebook 官方博客。
via 微軟,venturebeat
相關資訊
最新熱門應用
歐聯交易所app
其它軟件34.95 MB
下載bitstamp交易所
其它軟件223.89MB
下載幣行交易所app安卓版
其它軟件11.97MB
下載zbx交易平台
其它軟件32.73 MB
下載鏈一交易所
其它軟件94.15MB
下載易付幣交易所官網安卓版
其它軟件108.01M
下載芝麻交易所官網蘋果手機
其它軟件223.89MB
下載幣王交易所app蘋果
其它軟件47.98MB
下載吉事辦app官方最新版
生活實用45.4M
下載猿題庫最新版
辦公學習102.77M
下載