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

TensorRT安装及使用教程(ubuntu系统部署yolov7)

1 什么是TensorRT


一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。由于训练的网络模型可能会很大(比如,inception,resnet 等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如 squeezenet,mobilenet,shufflenet 等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。

而 TensorRT 则是对训练好的模型进行优化。 TensorRT 就只是推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进 TensorRT中,而不再需要依赖深度学习框架(Caffe、TensorFlow 等)
 

2 TensorRT安装

TensorRT 的安装方式很简单,只需要注意一些环境的依赖关系就可以,我们以 TensorRT 5.0.4 版本为例,参考官网安装教程,这里简单总结一下步骤

2.1 环境确认
确认 CUDA 版本是多少本次CUDA版本是11.8,可通过运行 nvcc -V 指令来查看 CUDA,如果不是 9.0 以上,则需要先把 CUDA 版本更新一下
cudnn 版本是要和CUDA对应,如果不满足要求,按照《Linux之cudnn升级方法》进行升级
需安装有 TensorFlow,uff模块需要。

2.2 下载安装包
进入下载链接
点击下载TensorRT(需要登录英伟达账号,没有的注册一个)
选择下载的版本
选择同意协议
根据自己的系统版本和 CUDA 版本,选择安装包,如图所示(如果是完整安装,建议选择Tar File Install Packages,这样可以自行选择安装位置)

2.3 安装指令

安装时只需要把压缩文件解压,相应的库文件拷贝到系统路径下即可

#在home下新建文件夹,命名为tensorrt_tar,然后将下载的压缩文件拷贝进来解压
tar xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz
#解压得到TensorRT-8.6.1.6的文件夹,将里边的lib绝对路径添加到环境变量中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/sxj/xiazai/TensorRT-8.6.1.6/lib

为了避免其它软件找不到 TensorRT 的库,建议把 TensorRT 的库和头文件添加到系统路径下

# TensorRT路径下
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include

要使用 python 版本,则使用 pip 安装,执行下边的指令

# 安装TensorRT
cd TensorRT-8.6.1.6/python
pip install tensorrt-8.6.1-cp38-none-linux_x86_64.whl
 
# 安装UFF,支持tensorflow模型转化
cd TensorRT-8.6.1.6/uff
pip install uff-0.6.9-py2.py3-none-any.whl
 
# 安装graphsurgeon,支持自定义结构
cd TensorRT-8.6.1.6/graphsurgeon
pip install graphsurgeon-0.4.6-py2.py3-none-any.whl

2.4安装完之后运行下边指令验证安装

python
import tensorrt
tensorrt.__version__

例程测试:
cd samples/sampleOnnxMNIST/
make -j8
cd ../../bin
bin ./sample_onnx_mnist


http://www.kler.cn/news/156014.html

相关文章:

  • 解决浏览器缓存问题
  • 基于算能的国产AI边缘计算盒子8核心A53丨17.6Tops算力
  • 设置随机种子保证网络可复现性
  • 智能优化算法应用:基于黄金正弦算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 有序表常见题型
  • 2023年GopherChina大会-核心PPT资料下载
  • Fiddler抓包工具之fiddler的常用快捷键
  • SpringAMQP入门案例——发送消息
  • Android CardView基础使用
  • 反序列化漏洞详解(三)
  • blender导出相机参数
  • ESP32使用mpu6050以及pid调参
  • Python - 字典3
  • 详解云WAF:免费GOODWAF归来
  • HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙专栏-11】
  • C语言实现Cohen_Sutherland算法
  • 构造函数的定义
  • Prometheus+Grafana搭建日志采集
  • Langchain-Chatchat的安装过程
  • C++基础 -35- string类
  • 操作系统·存储器管理
  • 亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
  • unordered_map与unordered_set的实现(含迭代器)
  • go使用aes加密算法
  • 【ArcGIS Pro微课1000例】0043:深度学习--框架库安装
  • 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(3)路由导航卫士、主页实现
  • Jupyter NoteBook未授权访问漏洞
  • 2024年天津财经大学珠江学院专升本专业课报名缴费操作流程
  • KALI LINUX入门
  • LC-1423. 可获得的最大点数(子数组和、枚举)