jetson上trtexec模型转换

一、导出onnx

将pt模型转换为onnx模型,以yolo系列为例:

bash 复制代码
 yolo export model=yolo11x.pt imgsz=640,640 batch=8 format=onnx

二、将静态模型转换为动态batch的模型

在trtexec工具的参数中,有maxShapes,minShapes,optShapes几个参数,意思是转换后的模型是动态batch的,当你的实际推理任务中,同时近来了多张图片,那么你可以不用一张一张的去推理,全部丢给模型,一次性推理完。主要目的是提高GPU的吞吐量。

但是我们导出的onnx模型一般batch维度是固定的,因此通过下面这段脚本,将模型的batch维度由一个固定的数值,变成'batch'字符串,这样trtexec在转换的过程中就可以利用maxShapes,minShapes,optShapes这三个参数区优化动态batch推理。不用固定输入1或者8张图片。

python 复制代码
import onnx

model = onnx.load('yolov5xu.onnx')

# 将输入的第一个维度(batch)改为动态
for inp in model.graph.input:
    dim = inp.type.tensor_type.shape.dim
    if len(dim) > 0:
        dim[0].dim_param = 'batch'  # 将 batch 维度改为动态

onnx.save(model, 'yolov5xu_dynamic.onnx')

如果,没有用上面的脚本转换,那么trtexec加maxShapes,minShapes,optShapes三个参数会报错。

三、转换

bash 复制代码
/usr/src/tensorrt/bin/trtexec \
  --onnx=yolov5xu.onnx \ 
  --explicitBatch \
  --minShapes=data:1x3x640x640 \ 
  --optShapes=data:8x3x640x640 \ 
  --maxShapes=data:16x3x640x640 \
  --saveEngine=yolov5xu.engine \
  --int8 \
  --calib=/path/to/calibration_images.txt \
参数 说明
--onnx yolov5xu.onnx 指定输入的 ONNX 模型文件路径
--saveEngine yolov5xu.engine 保存生成的 TensorRT 引擎文件路径
--explicitBatch 启用显式 Batch 模式 。告诉 TensorRT 网络的 batch 维度需要明确指定,而不是隐式推断。使用 --minShapes/--optShapes/--maxShapes 时此参数必须添加
--minShapes data:1x3x640x640 最小形状 :输入 data 的最小尺寸是 batch=1, channels=3, height=640, width=640
--optShapes data:8x3x640x640 最优形状 :输入 data 的最优尺寸是 batch=8, channels=3, height=640, width=640。TensorRT 会针对这个尺寸做最大程度优化
--maxShapes data:16x3x640x640 最大形状 :输入 data 的最大尺寸是 batch=16, channels=3, height=640, width=640
-optimizationLevel 3 TensorRT 整体优化级别。取值范围 0-3,3 为最高级别,会进行最激进的层融合和算子优化,能最大程度提升推理性能
--builderOptimizationLevel 3 Builder 构建优化级别 。同样取值范围 0-3,控制构建引擎时的优化强度。级别 3 会尝试更多内核组合,找到最优方案,但构建时间会显著增加
--memPoolSize workspace:1024 内存池大小限制 。限制构建引擎时 TensorRT 可以使用的最大工作内存为 1024 MiB (1GB)。这可以防止构建过程中出现 OOM(显存溢出)错误

注意,最好把模型放在jetson设备上转换

|---|---|---|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |

相关推荐
ai小陈6 分钟前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
智驭未来掌门人9 分钟前
别再让员工偷偷用 ChatGPT 了:用一台内网网关,把大模型变成"自来水"
人工智能
阿里云大数据AI技术9 分钟前
EMR Serverless Spark多模态 Daft 算子市场免费公测 | 10分钟极速实战(附视频教程)
人工智能·spark
船厂电气自动化ai大模型13 分钟前
AI大模型与数学/第63课:矩阵定义、矩阵加法、标量乘法(逐级精讲)
数据结构·人工智能·深度学习·线性代数·算法
小婉22 分钟前
我用 Next.js + React Flow 从零搭建了一个可视化 AI 工作流编排平台
前端·人工智能·node.js
AI行业说23 分钟前
誉财自动化YC-18-M8045怎么选?2026中小服装工厂模板机选型指南
人工智能·机器人·自动化
Waiky27 分钟前
给 AI Agents 一双「眼睛」:CrawlEyes 开源了
人工智能
甲维斯1 小时前
美版豆包又更新了!Gemini 3.8Flash是真Flash!
人工智能
云智慧AIOps社区1 小时前
2026年智能巡检机器人行业格局:三类厂商阵营、选型维度与产品推荐
运维·人工智能·机器人·巡检机器人
微三云 - 廖会灵 (私域系统开发)1 小时前
重资产的突围:当酒店遇上 RWA,用服务权益数字化重构产业供需关系
人工智能·重构