当前位置: 首页 > news >正文

【TensorRT踩坑记录】安装与使用

TensorRT安装

1、安装onnx和onnxruntime模块

因为转tensorrt需要先转成onnx(我也不确定,先这样说吧),直接pip安装即可。

pip install onnx
pip install onnxruntime

2、安装TensorRT

(1) 首先,查看CUDA版本。win+R输入cmd打开命令行窗口,输入nvcc-V

nvcc -V

在这里插入图片描述
(2) 下载tensorrt安装包
https://developer.nvidia.com/tensorrt/download
选择自己需要的版本
在这里插入图片描述
选择具体的版本号,一般选后缀是GA的,最稳定
在这里插入图片描述
选择和自己CUDA对应的进行下载,注意看清楚系统版本
在这里插入图片描述
(3)进行安装

1)解压TensorRT8.6的安装包,选中以下两个文件夹,复制(记住解压的位置,后面还要用)
在这里插入图片描述
2)首先,找到自己CUDA的安装位置,打开文件夹。如果自己没改过,一般都是以下路径:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1

在这里插入图片描述
3)把第1)步复制的文件夹,直接粘贴到CUDA/v12.1文件夹下。(对的,就在直接粘贴)

4)修改环境变量,将自己解压的TensorRT的文件夹下的bin文件夹,添加到环境变量path。

# 这是我自己的解压路径
D:\Edge\TensorRT-8.6.1.6.Windows10.x86_64.cuda-12.0\TensorRT-8.6.1.6\bin

在这里插入图片描述

(4)验证
首先,打开cmd命令窗口,进入CUDA/v12.1文件夹下(路径一定是这个,要不然trtexec命令没用),输入:

trtexec --help

显示以下以下帮助信息,说明TensorRT中的trtexec程序可用。
在这里插入图片描述
然后,验证trtexec是否可成功执行,打开python,写下如下python代码:

import torch
import torchvision.models as models
import onnx
import onnxruntime# 加载 PyTorch 模型
model = models.resnet18(pretrained=True)
model.eval()# 定义输入和输出张量的名称和形状
input_names = ["input"]
output_names = ["output"]
batch_size = 1
input_shape = (batch_size, 3, 224, 224)
output_shape = (batch_size, 1000)# 将 PyTorch 模型转换为 ONNX 格式
torch.onnx.export(model,  # 要转换的 PyTorch 模型torch.randn(input_shape),  # 模型输入的随机张量"resnet18.onnx",  # 保存的 ONNX 模型的文件名input_names=input_names,  # 输入张量的名称output_names=output_names,  # 输出张量的名称dynamic_axes={input_names[0]: {0: "batch_size"}, output_names[0]: {0: "batch_size"}}  # 动态轴,即输入和输出张量可以具有不同的批次大小
)# 加载 ONNX 模型
onnx_model = onnx.load("resnet18.onnx")
onnx_model_graph = onnx_model.graph
onnx_session = onnxruntime.InferenceSession(onnx_model.SerializeToString())# 使用随机张量测试 ONNX 模型
x = torch.randn(input_shape).numpy()
onnx_output = onnx_session.run(output_names, {input_names[0]: x})[0]print(f"PyTorch output: {model(torch.from_numpy(x)).detach().numpy()[0, :5]}")
print(f"ONNX output: {onnx_output[0, :5]}")

如果代码运行成功,会输出一个resnet18.onnx文件。

然后,将onnx转为trt文件。(注意,我实际操作下来,必须先进入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1路径下,才能使用trtexec命令,但是参考的某大佬博客确没说这一细节tensorRT安装详解(linux与windows))

# 自己填写onnx的所在路径和想要存放trt文件的路径
trtexec --onnx=resnet18.onnx --saveEngine=resnet18.trt

在这里插入图片描述

输出以下内容,即到此成功。

http://www.dtcms.com/a/325268.html

相关文章:

  • 软考 系统架构设计师系列知识点之杂项集萃(121)
  • 数据变而界面僵:Vue/React/Angular渲染失效解析与修复指南
  • leetcode-hot-100 (图论)
  • 算法训练营DAY57 第十一章:图论part07
  • 基于Qt Property Browser的通用属性系统:Any类与向量/颜色属性的完美结合
  • CVE-2019-0708复刻
  • react+vite-plugin-react-router-generator自动化生成路由
  • OBOO鸥柏丨115寸商用屏/工业液晶显示器招标投标核心标底参数要求
  • 【JAVA】使用系统音频设置播放音频
  • MyBatis执行器与ORM特性深度解析
  • React18 Transition特性详解
  • ARM汇编
  • Apache IoTDB 全场景部署:跨「端-边-云」的时序数据库 DB+AI 实战
  • 一维码+二维码+字符识别
  • 【数据结构】深入理解顺序表与通讯录项目的实现
  • 第十六届蓝桥杯大赛青少组 C++ 省赛真题解析(2025年8月10日)
  • 动态创建可变对象:Python类工厂函数深度解析
  • 云原生环境 Prometheus 企业级监控实战
  • 本地文件夹与 GitHub 远程仓库绑定并进行日常操作的完整命令流程
  • 时序数据库选型指南:Apache IoTDB为何成为工业物联网首选?
  • 精读:《DEEP OC-SORT: MULTI-PEDESTRIAN TRACKING BY ADAPTIVE RE-IDENTIFICATION》
  • 网安-安全加固
  • 安装jieba时遇到ModuleNotFoundError: No module named ‘distutils’
  • 2025世界机器人大会,多形态机器人开启商业化落地浪潮
  • stm32内存分析和RTOS任务切换分析
  • 第5节 大模型分布式推理通信优化与硬件协同
  • 高并发场景下分布式ID生成方案对比与实践指南
  • Web安全自动化测试实战指南:Python与Selenium在验证码处理中的应用
  • Redis知识点笔记
  • buildroot编译qt 5.9.8 arm64版本踩坑