ONNX - 檔案格式
ONNX 檔案格式基本上是一個容器,它封裝了機器學習模型的整個結構。當您將模型匯出為 ONNX 格式時,生成的的檔案(通常副檔名為 .onnx)包含模型的基於圖的表示。如果您曾經使用過 ImageNet、MobileNet 或 AlexNet 等深度學習架構,您會發現 ONNX 表示非常熟悉。
ONNX 檔案格式是一種靈活的表示機器學習模型的方法,使其能夠在各種框架之間移植。ONNX 模型的核心是由圖組成的,圖是一組計算節點的集合。圖中的每個節點都表示一個特定的操作(例如,卷積、ReLU 啟用),資料按順序透過這些節點移動,就像資料流過神經網路中的層一樣。
在本教程中,我們將詳細瞭解 ONNX 檔案格式,討論它如何構建模型,包括其元件,例如計算圖、節點、運算子和元資料。
ONNX 檔案格式的關鍵元件
ONNX 檔案包含各種元件,有助於描述模型、其結構以及其工作方式。讓我們討論這些元件。
模型
ONNX 檔案表示一個模型,幷包含以下關鍵元素:
- 版本資訊:有關使用的 ONNX 版本的詳細資訊。
- 元資料:有關模型的其他資訊,例如作者或使用的框架。
- 無環計算資料流圖:描述模型內如何執行計算的核心結構。
圖
ONNX 檔案的核心是表示計算流程的圖。可以將其視為模型為處理輸入並生成輸出而經歷的操作的對映。
- 輸入和輸出:描述進入和離開模型的資料。它包括資料型別和形狀(維度)等資訊。
- 計算節點列表:圖中的每個節點都表示一個計算步驟(例如,應用啟用函式)。
- 圖名稱:描述模型整體結構的圖的名稱。
計算節點
每個計算節點執行特定任務,例如將函式應用於輸入資料。
- 輸入:每個節點可能具有零個或多個預定義型別的輸入,這些輸入是其他節點的輸出或外部輸入。
- 輸出:每個節點產生一個或多個輸出,這些輸出傳遞給序列中的下一個計算節點。
- 運算子:這些表示正在應用的操作(例如,矩陣乘法、ReLU 啟用)。
- 運算子引數:每個運算子可能具有一些引數,例如學習率或歸一化因子。
理解圖結構
ONNX 圖的結構是一系列相互連線的計算節點,資料在它們之間流動。可以將其視為神經網路的各層,其中每一層都處理輸入資料並將其傳遞到下一層。
- 圖輸入:這些是資料的起點,在其中定義輸入(例如,CNN 中的影像張量)。
- 圖輸出:資料透過所有計算節點後,會生成最終輸出張量(例如,分類標籤)。
- 計算節點:這些表示模型中的單個操作,例如卷積、啟用 (ReLU)、池化和全連線層。
廣告