将训练好的模型应用——onnxruntime、TensorRT安装

2023-11-11

本文可作为ubuntu20.04 NVIDIA 3060配置CUDA cuDNN anaconda pytorch过程(20230226)的后续

onnxruntime安装

先在相应的aconoda环境进行python,然后输入import onnxruntime 检查有无安装onnxruntime

若没有安装,相应的aconoda环境的终端输入 pip install onnxruntime-gpu,如果安装了cpu版本的,先卸载 pip uninstall onnxruntime

TensorRT安装

这是一个很令人头秃的过程。

1.参考文献

我在安装过程中,参考了以下链接

TensorRT安装配置完成有感(含各种命令行保姆级教程)
TensorRT学习笔记–Ubuntu20.04安装TensorRT 8.2.5

ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory

2.下载

TensorRT下载链接
一定要选择和你的CUDA对应的版本!!!
我的CUDA是11.6,试了好几个,最后选择了8.5.1.7,下载是tar.gz版本的

3.解压、配置环境变量

我准备解压到/usr/local/TensorRT/

cd /usr/local/
sudo mkdir TensorRT
sudo cp ~/Downloads/TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz /usr/local/TensorRT/
cd TensorRT
tar -zxvf TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz

配置环境变量
打开./bashrc,在最后加上

# tensorRT install
export LD_LIBRARY_PATH=$PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/lib:$LIBRARY_PATH
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT/TensorRT-8.5.1.7/include

然后保存
然后

source ~/.bashrc

然后

cd /usr/local/TensorRT/TensorRT-8.5.1.7/samples/sampleOnnxMNIST
sudo make
cd ../../bin
 ./sample_onnx_mnist

(注意,不是sudo ./sample_onnx_mnist 要不然可能报./sample_onnx_mnist: error while loading shared libraries: libnvinfer.so.8: cannot open shared object file: No such file or directory,我也不知道为什么)

运行结果如下
在这里插入图片描述

4.安装TensorRT库(该步骤每个aconoda环境都要在各自终端来一遍)

cd /usr/local/TensorRT/TensorRT-8.5.1.7/python
# 根据Python版本安装,我的是python3.9
pip install tensorrt-8.2.5.1-cp39-none-linux_x86_64.whl 
 
# 安装依赖
cd /usr/local/TensorRT/TensorRT-8.5.1.7/graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl

然后在终端运行python,输入以下指令,看看是否成功

import onnxruntime as ort
import tensorrt
print(ort.get_device())
print(ort.get_available_providers())
print(tensorrt.__version__)

可能会报

ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

解决方法:
下载你已安装版本的cudnn的tar.gz,我对应的是cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz,然后解压,把inculde和lib64里的文件复制到cuda中

sudo cp ./include/cudnn.h /usr/local/cuda-11.6/include/
sudo cp ./lib/libcudnn* /usr/local/cuda-11.6/lib64/
cd /usr/local/cuda-11.6/
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

5.配置pycharm(该部分参考https://zhuanlan.zhihu.com/p/439123487)

打开pycharm,选择相应的环境,运行

import onnxruntime as ort
import tensorrt
print(ort.get_device())
print(ort.get_available_providers())
print(tensorrt.__version__)

会出现

ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory

以及

ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

这是因为我们还得在pycharm配置一下cudnn和TensorRT的环境变量
在pycharm上面点击:run —> Edit Configuration
然后点击Environment variables这一栏最右侧的小册子图标
在这里插入图片描述点击加号,添加环境变量,这里有个很重要的点,网上的教程是仅仅把TensorRT的环境变量添加,但是实际上这还需要把cuda的环境变量一起添加,这也是之前说的本地pycharm和linux可能出现的问题之一,而这里必须以绝对路径添加
此外,还要注意的是,CUDA和TensorRT都要添加LD_LIBRARY_PATH,如果分别添加,那么会挤掉一个,所以要放在一栏里,中间用:连接(该部分参考https://blog.csdn.net/hehedadaq/article/details/113531857)
这是添加之后的
在这里插入图片描述
这是我.bashrc文件中的
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将训练好的模型应用——onnxruntime、TensorRT安装 的相关文章

随机推荐

  • Python绘制三角函数图(sin\cos\tan)并标注特定范围

    根据我们指定的条件检索函数中的元素 import matplotlib pyplot as plt import numpy as np a np linspace 0 2 np pi 50 b np sin a plt plot a b
  • 总结sanic博客

    使用sanic openapi 博客计划 1 阅读sanic的源码和案例 已经做注解 https github com huge success sanic 2 使用sanic openapi优化api界面 https github com
  • 口语理解任务源码详解系列(二)利用seq2seq-attention模型实现

    利用seq2seq attention模型实现 写在前面 在前文介绍了项目的数据集构建 传送门 本文利用seq2seq attention实现 实现细节请参考论文 Attention Based Recurrent Neural Netwo
  • S7协议抓包分析(附pcap数据包)

    一 S7协议概述 1 S7协议简介 S7comm S7 通信 是西门子专有协议 可在西门子 S7 300 400 系列的可编程逻辑控制器 PLC 之间运行 它用于 PLC 编程 PLC 之间的数据交换 从 SCADA 监控和数据采集 系统访
  • 算法:单圈绝对值编码器处理成多圈的

    硬件描述 单圈编码器的分辨率是4096 功能描述 将单圈数据处理处理成多圈数据 起始圈数是1000圈 long GetCurrentAbsTotalValue long lValue long m absEncTotal 计算编码器总时间片
  • STM32与USB3300共同实现USB OTG HS的CDC串口通信速度测试

    项目场景 STM32和上位机传统通信方式就是串口 IIC SPI等 IIC和SPI一般不常用 串口是用的最多的通信方式 然而串口一般用于输出调试信息这种对传输速度没要求的场景 那种大容量数据快速传输的场景 串口显得捉襟见肘 STM32自带U
  • Siebel是什么意思

    简介 Siebel是电子商务软件的突出供应商 其客户关系管理 CRM 企业资源管理 ERM 以及合作关系管理 PRM 应用设计用于实现企业这些方面的自动化以及允许企业在互联网和零售或电话中心网络等其它渠道来执行和调节相关任务 Sieble的
  • Unity中的Animator动画详解

    Unity中的Animator动画详解 Animator动画导入 Animator动画详解 动画类型选择 Rig面板属性 Mode面板属性 Animation面板属性 动画片段 控制使用 Animator动画 创建动画控制器 添加需要播放的
  • 疑似APT组织响尾蛇的JavaScript脚本调试分析

    APT组织响尾蛇JavaScript脚本调试分析 样本描述 样本分析 投递手法 HTA JS代码 JavaScript调试方式 IE 打印参数 代码逻辑 样本描述 响尾蛇投递与巴基斯坦外交政策有关的LNK文件 LNK文件不携带主要的恶意代码
  • 认识一下以太坊、EOS和Hyperledger等不同的区块链

    不同的区块链智能合约和区块链技术现在风靡一时 越来越多的人出于某种原因试图进入这个神奇的世界 如果你是这项技术的新手并正在寻找基于区块链的开发平台的快速入门 那么本指南非常适合你 我们将重点关注和比较的平台是 Ethereum EOS Hy
  • eclipse上配置JavaFX完整教程

    1 选择菜单栏Help中的Install New Software 2 点击Add添加安装JavaFx环境 name e fx clipse Location http download eclipse org efxclipse upda
  • QT4、5、6各版本之间的特点和选择

    文章目录 0 引入 1 稳定版本 2 各版本冷知识 持续补充 3 5 0系列主要版本特性 4 建议 0 引入 QT用的最多的是QT5系列 qt6系列目前虽然是一个大版本 增加了更多的系列 但是不稳定且要求win10以及以上版本 1 稳定版本
  • 图像处理系列——直方图之灰度直方图(Image Histogram)

    目录 0 前言 1 理论知识 2 数学原理 3 案例分析 4 代码实现
  • 在CSS之中实现

  • C语言基础练习题

    文章目录 一 初始C语言 题目1 7 前言 最近做的一些C语言的基础题目 可能有错 最近找忙着找工作 内容 一 依次输入10个数 求出之中的最大数 int main int a i t i 2 scanf d a 先输入第一个数的值 t a
  • 论文格式检测网站经验总结第一弹

    这是我的第一个实战项目 前前后后开发了大致有两个多月的时间 在开发过程中我担任的是整个项目的后端部分 只有我一个人 采用的编程语言是Python 后端框架为Django 我总结了主要的知识点如下 Django的基本使用 视图函数 路由 se
  • SVG基础教程(超级详细)

    一 内置图形 rect 矩形 circle 圆 ellipse 椭圆 line 直线 polyline 折线 polygon 多边形 path 路径 二 内置图形的html属性或 css样式 fill 填充颜色 fill opacity 填
  • Linux网络编程基础

    Linux网络编程基础 1 协议的概念 什么是协议 典型协议 网络程序设计模式 分层模型 TCP IP四层模型 实际开发中常用模型 通信过程 协议的概念 从应用的角度出发 协议可理解为 规则 是数据传输和数据的解释的规则 假设 A B双方欲
  • jenkins升级

    jenkins升级 最关心的问题莫过于其中的job保存住 新版本中启动后可以直接使用 答案是可以的 以centos为例 不管是war部署到tomcat下面启动 还是直接通过java jar 方式启动 默认初始化目录都在 root jenki
  • 将训练好的模型应用——onnxruntime、TensorRT安装

    本文可作为ubuntu20 04 NVIDIA 3060配置CUDA cuDNN anaconda pytorch过程 20230226 的后续 onnxruntime安装 先在相应的aconoda环境进行python 然后输入import