onnx 測試_用于ONNX的TensorRT后端

用于ONNX的TensorRT后端

解析ONNX模型以使用TensorRT執行。

另請參閱TensorRT文檔

有關最近更改的列表,請參見changelog

支持的TensorRT版本

Master分支上的開發適用于具有完整維度和動態架構shape支持的TensorRT 7.2.1的最新版本。

對于TensorRT的早期版本,請參考其各自的分支。

完整尺寸+動態架構

在具有動態架構支持的全維度模式下,構建INetwork對象,需要調用以下API:

C ++

const auto explicitBatch = 1U << static_cast<uint32_t>(nvinfer1::NetworkDefinitionCreationFlag::kEXPLICIT_BATCH);

builder->createNetworkV2(explicitBatch)

Python

import tensorrt

explicit_batch = 1 << (int)(tensorrt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)

builder.create_network(explicit_batch)

有關這些API用法的示例,請參見:

  • sampleONNXMNIST
  • sampleDynamicReshape

支持的算子

當前支持的ONNX算子,可在算子支持列表中找到。

安裝

依存關系

Dependencies

  • Protobuf >= 3.0.x
  • TensorRT 7.2.1
  • TensorRT 7.2.1 open source libaries (master branch)

編譯

對于在docker中進行構建,建議按照main(TensorRT存儲庫)[https://github.com/NVIDIA/TensorRT#setting-up-the-build-environment]中的說明使用和設置Docker容器,來構建onnx -tensorrt庫。

clone存儲庫后,可以通過運行以下命令,來構建解析器庫和可執行文件:

cd onnx-tensorrt

mkdir build && cd build

cmake .. -DTENSORRT_ROOT=<path_to_trt> && make -j

// Ensure that you update your LD_LIBRARY_PATH to pick up the location of the newly built library:

export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

可執行用法

可以使用onnx2trt可執行文件,將ONNX模型轉換為序列化的TensorRT引擎:

onnx2trt my_model.onnx -o my_engine.trt

ONNX模型也可以轉換為人們可讀的文本:

onnx2trt my_model.onnx -t my_model.onnx.txt

ONNX模型也可以通過ONNX的優化庫(由dsandler添加)進行優化。要優化ONNX模型并輸出新的模型,可使用它-m來指定輸出模型名稱,用-O指定以分號分隔的優化過程列表,進行應用:

onnx2trt my_model.onnx -O "pass_1;pass_2;pass_3" -m my_model_optimized.onnx

通過運行以下命令,查看更多所有可用的優化遍歷:

onnx2trt -p

通過運行以下命令,查看更多用法信息:

onnx2trt -h

Python模塊

ONNX-TensorRT解析器的Python,綁定打包在隨附的.whl文件中。用來安裝

python3 -m pip install <tensorrt_install_dir>/python/tensorrt-7.x.x.x-cp<python_ver>-none-linux_x86_64.whl

TensorRT 7.2.1支持ONNX版本1.6.0。通過以下方式安裝:

python3 -m pip install onnx==1.6.0

可以通過運行以下命令,來安裝ONNX-TensorRT后端:

python3 setup.py install

ONNX-TensorRT Python后端使用

可以在Python中如下使用ONNX的TensorRT后端:

import onnx

import onnx_tensorrt.backend as backend

import numpy as np

model = onnx.load("/path/to/model.onnx")

engine = backend.prepare(model, device='CUDA:1')

input_data = np.random.random(size=(32, 3, 224, 224)).astype(np.float32)

output_data = engine.run(input_data)[0]

print(output_data)

print(output_data.shape)

C ++庫用法

模型解析器庫libnvonnxparser.so,在頭文件中聲明了其C ++ API:

NvOnnxParser.h

測試

安裝后(或在Docker容器內),可以按以下方式運行ONNX后端測試:

僅實模型測試:

python onnx_backend_test.py OnnxBackendRealModelTest

所有測試:

python onnx_backend_test.py

可以使用-v標志,使輸出更加詳細。

預訓練模型

在ONNX格式預先訓練模式可以在找到ONNX Model Zoo

https://github.com/onnx/onnx-tensorrt?github.com

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

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

相關文章

paddlepaddle測試安裝_百度paddlepaddle深度學習7日入門-CV疫情特輯心得

正值疫情嚴重之日&#xff0c;作為一名研究生被迫待在家里學習&#xff0c;手頭的科研項目也嚴重受挫。。。偶然間&#xff0c;看到微信公眾號發布這門課&#xff0c;馬上報名&#xff0c;入坑&#xff01;&#xff01;&#xff01;瞬間疫情其間有學習的目標了。。該課程學習依…

apache目錄 vscode_VsCode搭建Java開發環境(Spring Boot項目創建、運行、調試)

VsCode搭建Java開發環境(Spring Boot項目創建、運行、調試)安裝如下兩個主要擴展即可&#xff0c;這兩個擴展已關聯java項目開發主要使用的maven、springboot等所需要的擴展。開始步驟&#xff1a;在 Visual Studio Code 中打開擴展視圖(CtrlShiftX)。輸入“java”搜索商店擴展…

android dp轉px的公式_Android特效專輯——自定義不一樣的Toast

大家都知道&#xff0c;Android的控件有時候很難滿足我們的需求&#xff0c;所以我們需要自定義View。自定義的方式很多&#xff0c;有繼承原生控件也有直接自定義View的&#xff0c;今天寫的是自定義的Toast&#xff0c;當然&#xff0c;這個不是復寫Toast,是換一種表達形式&a…

code iban 是有什么組成_深入淺出Zookeeper(四):客戶端的請求在服務器中經歷了什么...

作者 泊浮目 沃趣科技高級研發工程師出品 沃趣科技1. 前言當我們向zk發出一個數據更新請求時&#xff0c;這個請求的處理流程是什么樣的&#xff1f;zk又是使用了什么共識算法來保證一致性呢&#xff1f;帶著這些問題&#xff0c;我們進入今天的正文。2. 設計模式&#xff1…

Centos7: 配置IO調度

今天有同事問我個問題&#xff1a;“CentOS7如何修改IO默認的調度”&#xff0c;我這里簡單整理下如何調整的方法&#xff1a; 1、查看CentOS7下IO支持的調度 1234[rootkvm02 ~]# dmesg | grep -i scheduler [ 16.900459] io scheduler noop registered[ 16.900473] io sch…

啟動activemq_「Java」 - SpringBoot amp; ActiveMQ

一、消息隊列消息隊列中間件是分布式系統中重要的組件&#xff0c;主要解決應用耦合、異步消息、流量削鋒等問題&#xff0c;實現高性能、高可用、可伸縮和最終一致性架構&#xff0c;是大型分布式系統不可缺少的中間件。目前在生產環境中使用較多的消息隊列有ActiveMQ、Rabbit…

永不休眠怎么設置_電腦休眠后應該怎樣喚醒?

可能有朋友會碰到這種情況&#xff0c;電腦屏幕顯示正在休眠&#xff0c;而且不停的轉圈&#xff0c;這是怎么回事&#xff0c;如何喚醒?下面讓堅哥為大家分析一下吧。電腦開機顯示休眠一般根據以下幾種情況進行處理&#xff1a;1、正常電腦休眠&#xff1a;一般的是按一下電源…

配置ssl證書_Mysql配置ssl證書

本環境基于mysql5.6配置&#xff0c;通過openssl生成證書進行配置一、確認環境信息1、查看數據庫版本mysql> select version();-----------| version() |-----------| 5.6.36 |-----------2、查看數據庫是否支持ssl配置mysql> show variables like have%ssl%;-----------…

echarts散點圖中大小_echarts在地圖上繪制散點圖(任意點)

項目需求&#xff1a;在省份地圖上繪制散點圖&#xff0c;散點位置不一定是哪個城市或哪個區縣&#xff0c;即任意點通過查詢官網文檔&#xff0c;找到一個與需求類似的demo&#xff1a;&#xff0c;更改代碼&#xff0c;將中國地圖替換為省份地圖&#xff0c;省份地圖的js代碼…

如何讓圖片充滿excel單元格_如何在Excel單元格建立下拉菜單

對于一些常用的數據我們往往會希望能夠盡量快速的輸入&#xff0c;下拉菜單就是一個最簡單的解決辦法。那么如何實現下拉菜單呢&#xff1f;跟隨以下步驟&#xff0c;建立屬于自己的下拉菜單吧&#xff01;如何建立下拉菜單&#xff1f;一、確定內容&#xff1a;在單元格中&…

pgsql中float4導致java程序精度丟失_Java基礎系列02

注釋Java中支持三種注釋&#xff1a;1.單行注釋以//開始換行結束。2.多行注釋以/*開始&#xff0c;以*/結束。3.說明注釋以/**開始&#xff0c;以*/結束。關鍵字關鍵字&#xff1a;是指在程序中&#xff0c;Java已經定義好的單詞&#xff0c;具有特殊含義。例如上篇文章中Hello…

python地理位置聚類_python – 用于聚類地理位置數據的DBSCAN

我有一個緯度和經度對的數據幀.這是我的數據幀外觀.order_lat order_long0 19.111841 72.9107291 19.111342 72.9083872 19.111342 72.9083873 19.137815 72.9140854 19.119677 72.9050815 19.119677 72.9050816 19.119677 72.9050817 19.120217 72.9071218 19.120217 72.90712…

用idea建立jsp項目_用idea創建maven項目,配置tomcat詳解

用idea創建maven項目&#xff0c;配置tomcat詳解&#xff0c;電腦上得有jdk1.7&#xff0c;或者1.8&#xff0c;然后就是maven3.x吧&#xff0c;再有就是tomcat7以上下面就直接開始看圖啦&#xff1a;這個我剛剛開始沒注意細看&#xff0c;原來web app 的骨架有2個呢&#xff0…

求立方根_初一數學立方根考點詳解,立足基礎,把握題型,學會方法

初一數學實數部分&#xff0c;平方根和立方根這兩部分的知識點比較的基礎&#xff0c;但是考試中卻是經常會考&#xff0c;并且有很多的“陷阱”&#xff0c;也是讓學生猝不及防&#xff0c;今天我和同學們繼續學習交流立方根的知識點&#xff0c;通過詳解考點&#xff0c;幫助…

ctf音頻yinxie_ctf-圖片隱寫術

文件隱藏常見文件頭尾jpg 文件頭FFD8FFE0 文件尾FFD9png 文件頭89504E470D0A1A0A 文件尾AE426082gif 文件頭47494638 文件尾003Bzip 文件頭504B0304 文件尾rar 文件頭Rar! 文件尾7zip 文件頭7z集 文件尾文件分析工具binwalk,kali中集成工具&#xff0c;用于分析文件中所包含的內…

mysql負責均衡讀寫分離_MySQL讀寫分離之負載均衡

mysql官方文檔中有這么一句話&#xff1a;MySQL Proxy is currently an Alpha release and should not be used within production environments.So。。。使用haproxy來做這些事&#xff0c;以下僅供參考&#xff1a;環境配置master 192.168.1.106 master1s…

mysql使用技巧_MySQL使用不得不看的幾個小技巧

程序中寫入的一行行的SQL語句&#xff0c;如果使用了一些優化小技巧&#xff0c;定能達到事半功倍的效果。1. 優化你的MySQL查詢緩存在MySQL服務器上進行查詢&#xff0c;可以啟用高速查詢緩存。讓數據庫引擎在后臺悄悄的處理是提高性能的最有效方法之一。當同一個查詢被執行多…

mysql oracle 數據類型轉換_Mysql與Oracle之間的數據類型轉換

&lbrack;轉&rsqb;MYSQL 與 Oracle 之間的數據類型轉換

rad linux下安裝mysql_Linux(CentOS或RadHat)下MySQL源碼安裝

MySQL 5.6開始&#xff0c;需要使用g進行編譯。cmake &#xff1a;MySQL 5.5開始&#xff0c;使用cmake進行工程管理&#xff0c;cmake需要2.8以上版本。bison &#xff1a;MySQL語法解析器需要使用bison進行編譯。ncurses-devel &#xff1a;用于終端操作的開發包。zlib …

mysql5.1數據庫亂碼_MySql5.1以上版本中文亂碼的解決方法

在my.cnf內添加以下代碼輸出err日志信息&#xff1a;[safe_mysqld]err-log /var/log/mysqld.logpid-file /var/lib/mysql/localhost.localdomain.pid在shell中輸入/bin/sh /usr/bin/mysqld_safe &啟動mysql&#xff0c;shell輸出如下&#xff1a;110328 11:39:55 mysqld_…