【飛槳EasyDL】飛槳EasyDL發布的模型轉換onnx(附工程代碼)

一個愿意佇立在巨人肩膀上的農民......

?一、paddle轉onnx轉rknn環境搭建

????????paddle轉onnx和onnx轉rknn兩個環境可以分開搭建,也可以搭建在一起。這里選擇分開搭建,先搭建paddle轉onnx。

1.1、創建環境

????????選擇python3.8.13包進行創建環境

conda create --name paddle2rknn libprotobuf python==3.9

1.2、進入環境

????????命令如下:

conda activate paddle2rknn

1.3、RKNN-Toolkit2工具安裝

????????RKNN-Toolkit2是為用戶提供在 PC、Rockchip NPU 平臺上進行模型轉換、推理和性能評估的開發套件,RKNN-Toolkit2適用于RK3566、RK3568、RK3588/RK3588S、RV1103、RV1106等型號的芯片。RKNN-Toolkit2的適配文件可以從下方鏈接獲取:

https://download.csdn.net/download/weixin_41809117/88879019?spm=1001.2014.3001.5503icon-default.png?t=N7T8https://download.csdn.net/download/weixin_41809117/88879019?spm=1001.2014.3001.5503

????????下載解壓后這里RKNN-Toolkit2的根目錄為./rknn-toolkit2/packages/。目前提供兩種方式安裝RKNN-Toolkit2:一是通過Python包安裝與管理工具pip進行安裝;二是運行帶完整RKNN-Toolkit2工具包的docker鏡像。本文采用第一種方式。

????????切換到RKNN-Toolkit2根目錄:

cd /home/ub/下載/rknn-toolkit2/rknn-toolkit2/packages/

????????安裝依賴,因為我們環境的python版本是3.10.0,所以這里執行:

pip install -r requirements_cp39-1.6.0.txt

????????安裝RKNN-Toolkit2:

pip install rknn_toolkit2-1.6.0+81f21f4d-cp39-cp39-linux_x86_64.whl

1.4、paddle2onnx工具安裝

????????查看paddle2onnx可安裝版本:

pip index versions paddle2onnx

????????默認安裝的就是最新版本,這里指定1.0.8版本,否則會因為onnx版本版本太高,與RKNN-Toolkit2不兼容:

pip install paddle2onnx==1.0.8

1.5、解決相關依賴問題

????????到此,paddle轉onnx轉rknn環境基本搭建完成,但是還要解決一下包依賴的問題。

??????? 安裝pip依賴查看工具:

pip install pipdeptree

????????查看依賴關系:

pipdeptree -p paddle2onnx

????????根據終端打印的內容進行包的安裝和版本更換。

pip install /*包名*/==/*版本號*/

二、模型轉換

????????Paddle2ONNX 支持將 PaddlePaddle 模型格式轉化到 ONNX 模型格式。通過 ONNX 可以完成將 Paddle 模型到多種推理引擎的部署,包括 TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它對 ONNX 開源格式進行支持的推理引擎或硬件。Paddle2ONNX包可通過如下連接下載:

https://download.csdn.net/download/weixin_41809117/88879464?spm=1001.2014.3001.5503icon-default.png?t=N7T8https://download.csdn.net/download/weixin_41809117/88879464?spm=1001.2014.3001.5503

2.1、獲取PaddlePaddle部署模型

????????Paddle2ONNX 在導出模型時,需要傳入部署模型格式,包括兩個文件

????????a).model_name.pdmodel: 表示模型結構

????????b).model_name.pdiparams: 表示模型參數 [注意] 這里需要注意,兩個文件其中參數文件后輟為 .pdiparams,如你的參數文件后輟是 .pdparams,那說明你的參數是訓練過程中保存的,當前還不是部署模型格式。 部署模型的導出可以參照各個模型套件的導出模型文檔。

2.2、命令行模型轉換

????????指令paddle2onnx相關參數如下表:

參數參數說明
--model_dir配置包含 Paddle 模型的目錄路徑
--model_filename[可選] 配置位于 --model_dir 下存儲網絡結構的文件名
--params_filename[可選] 配置位于 --model_dir 下存儲模型參數的文件名稱
--save_file指定轉換后的模型保存目錄路徑
--opset_version[可選] 配置轉換為 ONNX 的 OpSet 版本,目前支持 7~16 等多個版本,默認為 9
--enable_dev_version[可選] 是否使用新版本 Paddle2ONNX(推薦使用),默認為 True
--enable_onnx_checker[可選] 配置是否檢查導出為 ONNX 模型的正確性, 建議打開此開關, 默認為 False
--enable_auto_update_opset[可選] 是否開啟 opset version 自動升級功能,當低版本 opset 無法轉換時,自動選擇更高版本的 opset進行轉換, 默認為 True
--deploy_backend[可選] 量化模型部署的推理引擎,支持 onnxruntime、tensorrt 或 others,當選擇 others 時,所有的量化信息存儲于 max_range.txt 文件中,默認為 onnxruntime
--save_calibration_file[可選] TensorRT 8.X版本部署量化模型需要讀取的 cache 文件的保存路徑,默認為 calibration.cache
--version[可選] 查看 paddle2onnx 版本
--external_filename[可選] 當導出的 ONNX 模型大于 2G 時,需要設置 external data 的存儲路徑,推薦設置為:external_data
--export_fp16_model[可選] 是否將導出的 ONNX 的模型轉換為 FP16 格式,并用 ONNXRuntime-GPU 加速推理,默認為 False
--custom_ops

[可選] 將 Paddle OP 導出為 ONNX 的 Custom OP。

例如:--custom_ops '{"paddle_op":"onnx_op"},默認為 {}

??????? 模型轉換指令:

paddle2onnx --model_dir models --model_filename model.pdmodel --params_filename model.pdiparams --opset_version 12 --save_file saveonnx/model.onnx --enable_onnx_checker True

??????? 轉換結果在./Paddle2ONNX/saveonnx/model.onnx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day09:基礎入門-算法逆向散列對稱非對稱JS源碼逆向AESDESRSASHA

目錄 算法加密-概念&分類&類型 加密解密-識別特征&解密條件 解密實例-密文存儲&數據傳輸 思維導圖 章節知識點: 應用架構:Web/APP/云應用/三方服務/負載均衡等 安全產品:CDN/WAF/IDS/IPS/蜜罐/防火墻/殺毒等 滲透命令&am…

電子科技大學《數據庫原理及應用》(持續更新)

前言 電子科技大學的數據庫課程縮減了部分的課時,因此,可能并不適合所有要學習數據庫的寶子們,但是,本人盡量將所有數據庫的內容寫出來。本文章適用于本科生的期中和期末的復習,電子科技大學的考生請在復習前先看必讀…

MySQL相關知識匯總

MySQL是一個廣泛使用的開源關系型數據庫管理系統,它以其高性能、穩定性和易用性而備受開發者喜愛。在軟件開發領域,無論是大型項目還是小型應用,MySQL都扮演著重要的角色。本文將對MySQL的一些關鍵知識點進行匯總,幫助讀者更好地了…

5. informer源碼分析-概要分析

k8s client-go k8s informers 實現了持續獲取集群的所有資源對象、監聽集群的資源對象變化功能,并在本地維護了全量資源對象的內存緩存,以減少對 apiserver、對 etcd 的請求壓力。Informers 在啟動的時候會首先在客戶端調用 List 接口來獲取全量的對象集…

C++中boost庫的安裝及使用(Windows)

Boost庫的安裝及使用 引言使用現有的boost庫安裝及使用引言 C++開發中經常會用到boost庫,本文記錄一下Windows上boost在visual studio2019上的使用。 Boost庫是一個跨平臺的C++庫集合,旨在為C++開發者提供一系列高質量的通用功能。不同的Visual Studio(VS)版本并不要求安…

日常科研中經常使用的命令

Linux目錄樹狀結構 1. Windows是磁盤分區,Linux不區分盤符,所有文件都在根目錄斜線下面; 2. 根目錄顯示不同,Linux是一個斜線,而windows是盤符,然后冒號; 3. 分割目錄Linux用斜線&#xff0c…

React編寫組件時,如何省略.tsx后綴

省略.tsx后綴 當tsconfig.json配置了,需要重啟后才會生效 {"compilerOptions": {"allowJs": true,"jsx": "react-jsx",} }當進行以上配置后,導入組件時添加后綴,Eslint報錯如下: An im…

【算法集訓】基礎算法:基礎排序 - 冒泡排序

一、基本理解 貼上圖解,更容易理解代碼:https://visualgo.net/zh/sorting 冒泡排序(Bubble Sort)又稱為泡式排序,是一種簡單的排序算法。 核心思想: 它重復地走訪過要排序的數列,一次比較兩個元素,如果它…

性能比較:in和exists

當在Hive SQL中使用NOT IN和NOT EXISTS時,性能差異主要取決于底層數據的組織方式、數據量大小、索引的使用情況以及具體查詢的復雜程度。下面是對這兩種方法的性能分析: 1. NOT IN:- 工作原理:NOT IN子查詢會逐個比較主查詢中的值…

化肥工業5G智能制造工廠數字孿生可視化平臺,推進化肥行業數字化轉型

化肥工業5G智能制造工廠數字孿生可視化平臺,推進化肥行業數字化轉型。隨著科技的不斷發展,數字化轉型已經成為各行各業發展的必然趨勢。在化肥工業領域,5G智能制造工廠數字孿生可視化平臺的應用正在逐漸普及,為行業數字化轉型提供…

Java 循環結構 - while ,do…while 及 for,

目錄 Java中有三種主要的循環結構: while 循環 實例 do…while 循環 實例 for循環 實例 三種循環之間的區別 增強 for 循環 實例 break 關鍵字 語法 實例 continue 關鍵字 語法 實例 順序結構的程序語句只能被執行一次。 如果您想要同樣的操作執行…

租用云服務器租時要注意的問題有哪些?

隨著云計算的不斷發展,對云計算服務器的需求也越來越大。 那么,我們應該如何以正確的態度和方法來選擇云服務器呢? 租用云服務器需要注意哪些問題? 1.了解您需要的云服務類型 了解您的云計算需求將使您了解您正在尋求的服務類型…

web運行時安全

1.輸入驗證 對傳遞的數據的格式、長度、類型(前端和后端都要)進行校驗。 對黑白名單校驗:比如前端傳遞了一個用戶名,可以搜索該用戶是否在白名單或者黑名單列表。 針對黑名單校驗,比如: // 手機號驗證…

讓兩個電腦通信的方法(TCP連接,UDP連接,C/S架構)

目錄 TCP-面向連接UDP-面向無連接C/S架構服務器和客戶端的工作過程C/S架構例子 讓兩個電腦通信的方法是 在C/S的基礎上,采用TCP和UDP的方式連接 TCP-面向連接 UDP-面向無連接 C/S架構 服務器和客戶端的工作過程 C/S架構例子 服務器與客戶端通信的過程類似公司與客戶…

微信小程序云開發教程——墨刀原型工具入門(添加交互事件)

引言 作為一個小白,小北要怎么在短時間內快速學會微信小程序原型設計? “時間緊,任務重”,這意味著學習時必須把握微信小程序原型設計中的重點、難點,而非面面俱到。 要在短時間內理解、掌握一個工具的使用&#xf…

殿堂級Flink源碼極精課程預售

一、為什么我們要讀源碼? 1、讓個人技術快速成長: 優秀的開源框架,底層的源碼設計思想也非常優秀,同時還有含有大量的設計模式和并發編程技術,優秀的解決方案,熟讀源碼對猿們技術提升有很大幫助 2、新技術學習能力: Java開源碼框架的源碼熟讀后,若出現…

第一篇:參考資料地址

javaGuide JavaGuide(Java學習&面試指南) | JavaGuide 清華學生總結的 小林coding labuladong labuladong 的算法筆記 | labuladong 的算法筆記 【華仔說技術】kafka的系列文章 https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg3MTcxMDgxNA…

【Datawhale組隊學習:Sora原理與技術實戰】Sora技術原理

Sora能力邊界探索 最大支持60秒高清視頻生成,以及基于已有短視頻的前后擴展,同時保持人物/場景的高度一致性如奶茶般絲滑過渡的視頻融合能力同一場景的多角度/鏡頭的生成能力具有動態攝像機運動的視頻。隨著攝像機的移動和旋轉,人和其 他場景…

x-pack的破解方式和免費jar包!!可直接用!!

原理介紹 我們平時為es安裝x-pack組件,用elasticsearch-plugin install x-pack ,安裝成功后。 1.cd $es目錄/pulgins/x-pack 里面有一個x-pack-5.6.2.jar ,將jar包反編譯,然后將里面的licence的程序改下。再編譯成jar包。 2…

通過筆記本橋接打印機組成網絡打印機其它電腦與之相連各種問題匯總

根據描述需要一臺低配閑置筆記本(有無線網卡),一臺普通臺式打印機(不帶WIFI)就可以組成網絡打印機,能省1000塊不? 1. 讓筆記本安裝驅動使其可以打印。 2. 讓筆記本上的打印機共享,…