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.mzph.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_…