神經網路模型模型轉ONNX

2022-09-20 01:39:13 字數 1337 閱讀 7708

近期由於業務需要,需要將訓練好的模型轉為onnx格式,為此頗費了一番功夫,在此總結一下吧。。

1、onnx是一種神經網路模型儲存的中間格式,支援多種格式的模型轉為onnx,也支援使用onnx匯入多種格式的模型,具體見目前其實onnx對於模型的支援還不是太好,主要表現在一些op還不能夠支援;

2、在pytorch下要將模型儲存成onnx格式需要使用torch.onnx.export()函式,使用該函式的時候需要傳入下面引數:

--model:待儲存的model,也就是你在程式中已經訓練好或者初始化好的模型

--input_shape:指定輸入資料的大小,也就是輸入資料的形狀,是乙個包含輸入形狀元組的列表;

--name:模型的名稱,即模型的儲存路徑;

--verbrose:true或者false,用來指定輸出模型時是否將模型的結構列印出來;

--input_names:輸入資料節點的名稱,資料型別為包含字串的列表;一般將這個名稱設為['data'];

--output_names:輸出資料節點的名稱,型別與輸入資料的節點名稱相同;

在成功匯出模型後,可以使用onnx再對模型進行檢查:

import

onnx

#load the onnx model

model = onnx.load("

alexnet.onnx")

#check that the ir is well formed

onnx.checker.check_model(model)

#print a human readable representation of the graph

onnx.helper.printable_graph(model.graph)

目前pytorch還不支援匯入onnx格式的模型。

--sym:.json檔案,也就是儲存了網路結構的檔案

--params:引數檔案

--input_shape:輸入資料的形狀,是乙個包含形狀元組的列表

--input_type:輸入資料的型別;

--模型的儲存路徑

4、從mxnet匯入onnx格式模型:需要使用mxnet.contrib.onnx.onnx2mx.import_model.import_model(model_file),這裡返回的是sym, arg_arams,aux_params,也就是網路結構symbol物件,儲存引數的字典, 再將其轉為mxnet的module物件(使用mxnet.module.module()),即可將模型恢復到mxnet框架下可執行的模型。

最後,好久沒有記錄日常學習積累的東西了,趁著失眠開個好頭吧,晚安。。。

onnx模型轉tensorflow模型

onnx是開源神經網路交換平台,有了它基本上不用糾結用什麼深度學習框架的問題了。我現在記錄一下怎麼將onnx模型轉換成tensorflow模型。1 安裝tensorflow和onnx 我是通過anaconda安裝的。詳情 這個部落格記載了安裝anaconda和onnx的詳情,安裝好anaconda後...

神經網路模型

神經網路往往不需要人為的構造資料特徵,因為乙個神經元就可以看做是原始資料的不同特徵的組合,在神經元數目足夠大,層數足夠多的情況下,是很容易準確的進行分類的.神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應 神經元模型 m p神經元模...

pt模型訓練,轉onnx

pytorch訓練yolov5s.pt,之後轉onnx。以檢測條形碼為例,1分類問題,訓練yolov5s.pt。2 data資料夾裡,images放入樣本,labels放入對應的txt標籤 labelimg製作,注意選擇yolo模式 新建yaml檔案 上圖中的barcode.yaml 用於指定路徑和...