Jetson系列TensorRT .onnx转.trt/.engine

一、环境配置

Jetson系列加速器如Nano、Xavier在刷机之后是自动安装了TensorRT的,通过如下命令可以检查是否安装成功:

dpkg -l | grep TensorRT

成功显示:

Jetson系列TensorRT .onnx转.trt/.engine

但是可能一开始在conda环境里加载不出来,是因为没有配置好环境。

首先找到tensor.so的位置:

sudo find / -iname "tensorrt.so"

我的位置在这里:

Jetson系列TensorRT .onnx转.trt/.engine

然后进入自己创建的conda用户环境里(/usr/local/archiconda3/envs/pytorch/lib/python3.6/site-packages)建立软连接:

ln -s /usr/lib/python3.6/dist-packages/tensorrt/tensorrt.so tensorrt.so

现在import tensorrt就不会有问题了:

Jetson系列TensorRT .onnx转.trt/.engine

文件转换还需要用到trtexec这个文件,我找了好久原来在这里:

Jetson系列TensorRT .onnx转.trt/.engine

当然它还是无法直接使用的,要在.bashrc文件里添加一下环境变量:

export PATH=/usr/src/tensorrt/bin:$PATH

记得source一下。

现在环境基本配置好了!

[En]

Now the environment is basically configured!

二、文件转换

在.onnx目录下运行:

.onnx转.trt

import os
import tensorrt as trt
import sys

TRT_LOGGER = trt.Logger(trt.Logger.WARNING)
runtime = trt.Runtime(TRT_LOGGER)
model_path = 'XXX.onnx'
engine_file_path = "XXX.trt"
EXPLICIT_BATCH = 1 << (int)(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)  # batchsize=1

builder = trt.Builder(TRT_LOGGER)
network = builder.create_network(EXPLICIT_BATCH)
parser = trt.OnnxParser(network,TRT_LOGGER)

#with trt.Builder(TRT_LOGGER) as builder, builder.create_network(EXPLICIT_BATCH) as network, trt.OnnxParser(network,TRT_LOGGER) as parser:
builder.max_workspace_size = 1 << 28
builder.max_batch_size = 1
print(network)
if not os.path.exists(model_path):
    print('ONNX file {} not found.'.format(model_path))
    exit(0)
print('Loading ONNX file from path {}...'.format(model_path))
    #with open(model_path, 'rb') as model:
model = open(model_path, 'rb')
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)', parser.get_error(error))
    #不加下面两行,生成的engine为None
last_layer = network.get_layer(network.num_layers - 1)
network.mark_output(last_layer.get_output(0))

network.get_input(0).shape = [1, 3, 680, 680] #此处记得修改成自己的inputsize
print('Completed parsing of ONNX file')
engine = builder.build_cuda_engine(network)
with open(engine_file_path, "wb") as f:
    f.write(engine.serialize())
    print('save  trt success!!')

.onnx转.engine

trtexec --onnx=XXX.onnx --saveEngine=XXX.trt

可以在后面添加–int8或者–fp16指定精度。

Original: https://blog.csdn.net/qq_41847894/article/details/124132989
Author: Jodie大白话
Title: Jetson系列TensorRT .onnx转.trt/.engine

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/496286/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 我给浏览器加了个语音搜索功能

    1. 前言 随着物联网的发展,语音识别技术受到越来越多的关注,语音识别技术正积极推动信息通信领域的革命,语音拨号,语音邮件,语音输入乃至语音操控等以语音识别为基础的人机交互日益普及…

    人工智能 2023年5月23日
    0100
  • 人机混合智能

    智能是人、物、环境系统(为简化起见,后面均以”人机环境系统”代替”人、物、环境系统”,并略去人、机,人、机、环境之间的顿号)相互作用…

    人工智能 2023年6月16日
    074
  • 使用CycleGAN训练自己制作的数据集,通俗教程,快速上手

    总结了使用 CycleGAN训练自己制作的数据集,这里的教程例子主要就是官网给出的斑马变马,马变斑马,两个不同域之间的相互转换。教程中提供了官网给的源码包和我自己调试优化好的源码包…

    人工智能 2023年7月23日
    068
  • 在simulink中运行离线训练之后的BP神经网络

    本贴内容如题所示,如何将训练好的BP神经网络加入到simulink中去运行,这只是我个人使用的,能够正常运行的办法,肯定不是最优的,大佬们请赐教。以一个简单的sin函数曲线拟合为例…

    人工智能 2023年7月12日
    040
  • 反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释

    文章目录 反卷积的作用 卷积中padding的几个概念 * No Padding Half(Same) Padding Full Padding 反卷积 * 反卷积中的Paddin…

    人工智能 2023年6月23日
    0110
  • Halcon深度学习总结

    一、Halcon17之后就已经推出了深度学习模块,之前一直没太关注过,最近一个项目需要用到目标检测,于是研究了Halcon深度学习三大模块,图像分类,目标检测,语义分割。并总结出来…

    人工智能 2023年7月27日
    0126
  • 学习数据分析可以参加哪些大赛?

    数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以…

    人工智能 2023年6月11日
    097
  • 基于遗传算法的BP神经网络优化算法(GA BP)实用算例

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、工程背景 二、代码(部分) * 1.引入库 2.读入数据 进化过程 注意 具体安装步骤 声明 …

    人工智能 2023年7月12日
    077
  • 简单理解回归关系

    查询各种数学定义的时候,经常会查出来一大堆数学公式,个人非常不喜欢这种解释,因为很多时候数学公式对于个人的初步理解并没有任何帮助,所以我比较想写一点初学者也能一眼看懂并理解的东西。…

    人工智能 2023年6月17日
    084
  • web前端-html-css-display

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。 Original: https:…

    人工智能 2023年6月26日
    079
  • 一文总结-ViT:Vision transformer的cls token如何实现分类?

    CSDN ViT: Vision transformer的cls token作用? 根据先前的一篇博客,可以关注到VitT作者引用类似flag的class token,其输出特征加…

    人工智能 2023年7月2日
    0108
  • OpenCV项目1-OCR识别

    文章目录 项目思路: * 1、灰度化处理: 2、采用高斯滤波去噪 3、边缘检测 4、查找轮廓并排序: 5、绘制全部轮廓 6、多边形逼近 7、仿射变换 8、写入图片文件 9、扫描读取…

    人工智能 2023年5月26日
    0119
  • SLAM精度评估

    简介 最近在群里划水时,看到很多初学的SLAMer面对精度评估这个问题无从下手。而精度评估确实是在SLAM算法实际评估中急需一种手段和工具,本文将从2维室内和3维室外两个层面来向各…

    人工智能 2023年6月10日
    069
  • sklearn.decomposition.PCA算法解析与应用

    目录 算法功能 算法参数 方法 实例 鸢尾花数据分类演示 算法功能 资源来源于官网 主成分分析(PCA)就是在尽可能保留数据特征的情况下,降低数据的维度。 这是怎么实现的呢?在sk…

    人工智能 2023年7月16日
    076
  • ROS中的msg消息

    1、 rosmsg show sensor_msgs/Image std_msgs/Header header &#x6D88;&#x606F;&#x593…

    人工智能 2023年6月18日
    065
  • Python组合数据类型及数据格式化

    《Python高级应用》实验报告 实验名称 : 实验4 组合数据类型 及数据格式化实验日期 : 4.21 姓 名 : 汪珊珊学 号 : 084619248班 级 : 计算机192 …

    人工智能 2023年7月15日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球