pt模型訓練,轉onnx

2022-09-19 17:39:07 字數 1501 閱讀 8623

pytorch訓練yolov5s.pt,之後轉onnx。

以檢測條形碼為例,1分類問題,訓練yolov5s.pt。

2、data資料夾裡,images放入樣本,labels放入對應的txt標籤(labelimg製作,注意選擇yolo模式)

新建yaml檔案(上圖中的barcode.yaml),用於指定路徑和類別。為了省事訓練和驗證用的一樣的圖。

3、vscode開啟程式資料夾

修改models裡yolov5s.yaml類別為1

修改根目錄裡的train.py

點選vscode右上方的開始按鈕,訓練完畢後,在runs\train\exp\weights\裡得到pt模型 best.pt

4、測試下效果

修改根目錄裡detect.py

點選vscode右上方的開始按鈕,檢測完畢後,在runs\detect\exp\裡得到結果圖。

5、pt轉onnx

vscode下方的「終端」裡輸入命令。注意自己的pt路徑,會在同路徑裡得到best.onnx。

python export.py --weightsruns/train/exp7/best.pt--img 640 --batch 1
簡化模型,先安裝包。

【為什麼要簡化?】在訓練完深度學習的pytorch或者tensorflow模型後,有時候需要把模型轉成 onnx,但是很多時候,很多節點比如cast節點,identity 這些節點可能都不需要,我們需要進行簡化,這樣會方便我們把模型轉成ncnn或者mnn等這些端側部署的模型格式或者通過tensorrt進行部署。

pip install onnx coremltools onnx-simplifier
進入best.onnx目錄

cd runs/train/exp7/weights
簡化,同路徑下得到簡化後的模型 best-sim.onnx

python -m onnxsim best.onnx best-sim.onnx
檢視網路結構

pip install netron

python

import

netron

netron.start(

'best-sim.onnx

')

yolov5模型轉換 一 pt檔案轉onnx

pip install onnx coremltools onnx simplifierpython models export.py weights yolov5s best.pt img 640 batch 1 在終端執行 為什麼要簡化?在訓練完深度學習的pytorch或者tensorflow模...

onnx模型轉tensorflow模型

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

onnx模型轉tensorflow的pb格式

遇到了很多坑,最常見的就是少了什麼模組,或某個模組沒有啥屬性,如 module tensorflow has no attribute ceil 記錄一下現在轉換成功的方式,首先 git clone 之後在終端安裝 pip install e.pip install tensorflow addon...