python .onnx 转 .engine亲测ok

 安装tensorRT:

1、下载与电脑中cuda和cudnn版本对应的tensorRT(比如我的是TensorRT-8.2.1.8.Windows10.x86_64.cuda-11.4.cudnn8.2)

2、打开目录里面有python文件夹,找到对应python版本的whl文件(我的是tensorrt-8.2.1.8-cp38-none-win_amd64.whl)  因为我python安装的是3.8版本

3、终端安装:pip install tensorrt-8.2.1.8-cp38-none-win_amd64.whl

4、结束


import tensorrt as trt
def get_DynEngine(onnx_file_path, engine_file_path,patchsize,max_workspace_size,max_batch_size):'''Attempts to load a serialized engine if available,otherwise build a new TensorRT engine as save it'''TRT_LOGGER = trt.Logger()trt.init_libnvinfer_plugins(TRT_LOGGER, "")explicit_batch = 1 << (int)(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)builder = trt.Builder(TRT_LOGGER)network = builder.create_network(explicit_batch)config = builder.create_builder_config()parser = trt.OnnxParser(network, TRT_LOGGER)runtime = trt.Runtime(TRT_LOGGER)print("common.EXPLICIT_BATCH:", explicit_batch)# 最大内存占用# 显存溢出需要重新设置config.max_workspace_size = max_workspace_size # 256MBconfig.set_flag(trt.BuilderFlag.FP16)print("max_workspace_size:", config.max_workspace_size)builder.max_batch_size = max_batch_size  # 推理的时候要保证batch_size<=max_batch_sizeif not os.path.exists(onnx_file_path):print(f'onnx file {onnx_file_path} not found,please run torch_2_onnx.py first to generate it')exit(0)print(f'Loading ONNX file from path {onnx_file_path}...')with open(onnx_file_path, 'rb') as model:print('Beginning ONNX file parsing')if not parser.parse(model.read()):print('ERROR:Failed to parse the ONNX file')for error in range(parser.num_errors):print(parser.get_error(error))return Noneinputs = [network.get_input(i) for i in range(network.num_inputs)]print("input", inputs)outputs = [network.get_output(i) for i in range(network.num_outputs)]print("out:", outputs)print("Network Description")for input in inputs:# 获取当前转化之前的 输入的 batch_sizebatch_size = input.shape[0]print("Input '{}' with shape {} and dtype {} . ".format(input.name, input.shape, input.dtype))for output in outputs:print("Output '{}' with shape {} and dtype {} . ".format(output.name, output.shape, output.dtype))# Dynamic input setting 动态输入在builder的profile设置# 为每个动态输入绑定一个profileprofile = builder.create_optimization_profile()print("network.get_input(0).name:", network.get_input(0).name)profile.set_shape(network.get_input(0).name, (1,1, *patchsize), (1, 1,*patchsize),(max_batch_size, 1, *patchsize))  # 最小的尺寸,常用的尺寸,最大的尺寸,推理时候输入需要在这个范围内config.add_optimization_profile(profile)print('Completed parsing the ONNX file')print(f'Building an engine from file {onnx_file_path}; this may take a while...')engine = builder.build_serialized_network(network, config)print('Completed creating Engine')with open(engine_file_path, 'wb') as f:f.write(engine)return engineif __name__ == "__main__":get_DynEngine("1.onnx", "2.engine",[96,160,160],5*(1<<30),2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SourceInsight - Relation Windows

磨刀不误砍柴工&#xff0c;你使用的工具决定了你的下限。我平时使用较多的代码编辑工具就是SourceInsight&#xff0c;这个工具速度快&#xff0c;操作方便&#xff0c;但处理非常大的项目的性能不是很理想&#xff0c;比如你要是添加整个Linux Kernel的源代码的话。 在使用SI…

怎样做好信用卡汽车分期业务营销

《信用卡汽车分期业务营销》大纲 【课程背景】 信用卡汽车分期业务销售是一种具有潜力的金融服务&#xff0c;通过与汽车经销商的合作&#xff0c;银行可以为消费者提供更多的选择和便利&#xff0c;同时也为自己带来了额外的收入和客户忠诚度。在销售过程中&#xff0c;银行…

html页面多个视频标签时设定只能播放一个视频

html页面经常会出现存在多个视频的情况&#xff0c;点击单个视频时&#xff0c;该视频播放&#xff0c;点击另外一个视频时&#xff0c;需要让正在播放的视频停止&#xff0c;开始播放所点击的新视频。如果不单独设置&#xff0c;就会出现页面同时播放多个视频的情况。 设置代…

什么是requestIdleCallback?和requestAnimationFrame有什么区别?

什么是requestIdleCallback? 我们都知道React 16实现了新的调度策略(Fiber), 新的调度策略提到的异步、可中断&#xff0c;其实就是基于浏览器的 requestIdleCallback和requestAnimationFrame两个API。 在 JavaScript 中&#xff0c;requestIdleCallback 是一个用于执行回调函…

Linguistic Steganalysis in Few-Shot Scenario论文阅读笔记

TIFS期刊 A类期刊 新知识点 Introduction Linguistic Steganalysis in Few-Shot Scenario模型是个预训练方法。 评估了四种文本加密分析方法&#xff0c;TS-CSW、TS-RNN、Zou、SeSy&#xff0c;用于分析和训练的样本都由VAE-Stego生产(编码方式使用AC编码)。 实验是对比在少样…

从零开始部署一个网站详细图文教程——腾讯云的服务器、SSL证书,阿里云的域名,七牛云的对象存储、CDN等

文章目录 前期准备连接服务器配置Golang环境安装配置MySQL安装配置Redis安装配置Nginx安装Node域名解析SSL证书下载启动项目配置CDN加速总结 前期准备 云服务器&#xff08;必备&#xff09;、已经备案的域名&#xff08;必备&#xff09;&#xff0c;已签发的SSL证书&#xf…

ssh-keygen(centos)

A—免密登陆—>B (1)A 机器&#xff0c;通过命令”ssh-keygen -t rsa“, 生成id_rsa,id_rsa.pub authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub &#xff1a; 生成的公钥文件 know_hosts : 已知的主机公钥…

index函数

字符串的index函数可以查找字符串里(某范围内)某子串出现的位置(从左)。字符串的index函数的语法格式&#xff1a; S.index(sub [,start [,end]]) -> int 函数的返回值为整形&#xff0c;即位置。sub为要查找的子串&#xff0c;start参数的含义是从S字符串的第start位置开始…

25. 深度学习进阶 - 权重初始化,梯度消失和梯度爆炸

文章目录 权重初始化梯度消失与梯度爆炸 Hi&#xff0c;你好。我是茶桁。 咱们这节课会讲到权重初始化、梯度消失和梯度爆炸。咱们先来看看权重初始化的内容。 权重初始化 机器学习在我们使用的过程中的初始值非常的重要。就比如最简单的wxb&#xff0c;现在要拟合成一个yha…

【计算机网络】虚拟路由冗余(VRRP)协议原理与配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol&#xff0c;简称VRRP)是由IETF…

Linux学习笔记 CenOS6.3 yum No package xxx available

环境CenOS [roothncuc ~]# cat /etc/issue CentOS release 6.2 (Final) Kernel \r on an \m安装gcc的时候提示没有包 [roothncuc ~]# sudo yum install gcc gcc-c libstdc-devel Loaded plugins: refresh-packagekit, security Setting up Install Process No package gcc a…

temu的产品发布后在哪里显示

temu是一款备受瞩目的产品&#xff0c;其发布后引起了广泛的关注。但是&#xff0c;很多人对于temu产品发布后在哪里显示存在疑惑。本文将深入探讨temu产品的展示方式和关键特点&#xff0c;帮助读者更好地了解temu产品在发布后的展示位置。 先给大家推荐一款拼多多/temu运营工…

【报错栏】(Vue) Invalid handler for event “click“: got undefined

Property or method "add" is not defined on the instance but referenced during render. 翻译&#xff1a; 属性或方法“add”未在实例上定义&#xff0c;但在渲染期间引用。 Invalid handler for event "click": got undefined 翻译&#xff1a; …

用bat制作图片马——一句话木马

效果图 代码 ECHO OFF TITLE PtoR MODE con COLS55 LINES25 color 0A:main cls echo.当前时间&#xff1a;%date% %time% echo.欢迎使用图片马制作工具 echo.请确保图片和php在同一路径下 echo.echo 请将图像文件拖放到此窗口并按 Enter&#xff1a; set /p "imagefile&q…

肖sir__搭建环境报错:com.alibaba.druid:type=DruidDataSourceStat异常

报错现象&#xff1a; 解决方案&#xff1a; 同一个服务器配置多个tomcat&#xff0c;而这些tomcat里边的项目配置的数据库连接池都是用alibaba.druid。下面说下我的解决过程&#xff0c;首先&#xff0c;修改tomcat bin目录下的catalina.sh,添加如下代码&#xff1a; 代码如…

Jayway JsonPath-提取JSON文档内容的Java DSL | 京东物流技术团队

介绍 JsonPath是一种能够提取部分JSON文档属性、对象、数组的语法&#xff0c;支持条件过滤、数学运算、字符串处理等功能。JsonPath与JSON文档就像 XPath 表达式与 XML 文档结合使用一样。 由于 JSON 结构通常是匿名的&#xff0c;并不一定和XML一样具有“根成员对象”&#…

C++ ifstream 下的中文乱码问题

先看示例代码&#xff1a; #include <cstdio> #include <iostream> #include <fstream> using namespace std;int main() {ifstream ip_file("读取.txt"); // “读取.txt”与代码文件位于同一目录string s;if (ip_file.is_open()) {// 读取txt内容…

Siemens S7-300主站Profibus网络设定以及OMRON设定

1.100L流量秤&#xff0c;历史值&#xff0c;D3426&#xff0c;D3427,7位 2.次数&#xff0c;D166&#xff0c;D177&#xff0c;5位 3.PROFIBUS地址03# 1.FA1&#xff0c;历史值&#xff0c;D3426&#xff0c;D3427,6位 2.包数区&#xff0c;D166&#xff0c;D177,5位 3.PROFIB…

nnunetv2 .pth 转 .onnx

nnunet v2版本的模型转化为onnx 转化为onnx后可以转化为engine文件&#xff0c;方便在c使用&#xff1b;&#xff08;可以移步tensorRT分类中看&#xff09; import torch from nnunetv2.inference.predict_from_raw_data import load_what_we_need from nnunetv2.utilities.…

前端:实现二级菜单(点击实现二级菜单展开)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…