Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
- JetBrains2024(IntelliJ IDEA、PhpStorm、RubyMine、Rider……)安装包
- Anaconda Miniconda安装
- .condarc 文件
- 配置镜像源
- 查看conda的配置和源(channel)
- 自定义conda虚拟环境路径
- conda常用命令
- pip源
- pip介绍:
- pip命令:
- 模型转换环境与模型训练环境
- 模型训练环境
- Ubuntu使用搭建方式一 (采用)
- Windows使用搭建方式二 (未采用)
- CUDA Toolkit 和 cuDNN安装教程 (Windows方式二 未采用)
- 查看CUDA版本
- TensorFlow框架 训练环境安装 (补充 未采用)
- Pytorch框架 训练环境安装 (采用)
- 配置YoloV8环境
- 模型转换环境
- 1. 安装Tensor RT (Windows方式二 未采用)
- TensorRT简介
- NVIDIA TensorRT 8.x 下载(Windows 未采用)
- 解压 Zip
- 有两种方式可选安装
- 切换到Conda虚拟环境中安装TensorRT
- 2. 安装Tensor RT (Ubuntu本地 未采用)
- NVIDIA TensorRT 8.x 下载(Liunx)
- 解压 TAR
- 写入环境变量文件并保存
- 3. 安装Tensor RT (Ubuntu Conda环境 采用)
- NVIDIA显卡驱动、CUDA Toolkit 和 cuDNN (Ubuntu 需要本地安装)
- 显卡驱动卸载
- 禁用集显
- 本节包含从 Python 软件包索引安装 TensorRT 的说明。
- 使刚刚修改的环境变量文件生效
- Torch-TensorRT安装 (Ubuntu Conda环境 采用)
仅供本人查阅
JetBrains2024(IntelliJ IDEA、PhpStorm、RubyMine、Rider……)安装包
迅雷网盘
提取码:jhar
百度网盘
提取码:6789
Anaconda Miniconda安装
清华大学开源软件镜像站 Miniconda下载
Anaconda 镜像使用帮助
linux安装软件:安装过程中根据提示输入enter或yes
bash Miniconda3-py312_24.3.0-0-Linux-x86_64.sh
安装完后,通过conda命令进行使用。
.condarc 文件
Windows 用户无法直接创建名为 .condarc 的文件,可先执行
conda config --set show_channel_urls yes
配置镜像源
通过修改文件添加(推荐)
直接修改.condarc文件是最方便的。
找到系统用户下的 .condarc 的文件,记事本打开并添加镜像源。
channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/clouddeepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
查看conda的配置和源(channel)
conda config --show ∥打印conda的所有配置(包括源)
conda info ∥/查看conda虚拟环境的信息
conda config --show-sources ∥查看conda的配置文件位置以及变量的值# 命令用法,new channel表示具体的源地址:
conda config --add channels new channel //添加新的源,默认最高优先级
conda config --prepend channels new channel //添加新的源到顶部,最高优先级
conda config --append channels new_channel //添加新的源到底部,最低优先级
conda config --add default channels new channe //添加default channels的源
∥添加清华源的具体命令如下
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
自定义conda虚拟环境路径
找到系统用户下的 .condarc 的文件,记事本打开并添加路径,换成自己要保存的位置,建议放在非C盘中。
##windows
envs_dirs:- E://Miniconda3//envs
##linux
envs_dirs:- /home/wlj/.conda/envs/
conda常用命令
# 获取版本号
conda -V
# 获取帮助
conda -h
# 环境管理命令帮助
conda env -h
# 列举所有环境
conda info --env
conda env list
# Python创建虚拟环境
conda create -n your_env_name python==x.x
# 复制某个环境 (本地使用)
conda create --name new_env_name --clone old_env_name
# 彻底删除旧环境,则可以实现重命名环境
conda remove --name old_env_name --all //注意:必须在base环境下进行以上操作,否则会出现各种莫名的问题。
# 通过.yml文件克隆虚拟环境(利用得到的.yml文件,可以实现在本地/非本地计算机上克隆/复制一个一模一样的虚拟环境)
conda env export > new_name.yml
conda env create --file new_name.yml ∥从new_name.yml文件中导入虚拟环境,.yml文件可以改虚拟环境new name。
# 激活或者切换虚拟环境
Windows: activate your_env_name
Linux: source activate your_env_nam
# 关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)
Windows: deactivate 或者 activate root 切回root环境
Linux:source deactivate
# 列举包
conda list
conda list -n your_env_name # 列举非当前活跃环境下的所有包
# 安装包
conda install [package]
conda install -n your_env_name [package] # 安装非当前活跃环境下的包
conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0 # 指定版本和channel
# 升级包
conda update [package]
conda update conda # 升级conda
# 查找包
conda search -h # 查看search使用帮助信息
conda search tensorflow # 查看指定包可安装版本信息命令
# 删除虚拟环境
conda remove -n your_env_name --all
conda uninstall -n your_env_name --all
# 删除环境钟的某个包
conda remove --name $your_env_name $package_name
# 卸载包
conda uninstall [package] # 卸载xxx文件包
# 清理包
conda clean -p //删除没有用的包 # 这个命令会检查哪些包没有在包缓存中被硬依赖到其他地方,并删除它们
conda clean -t //删除tar包
conda clean -y --all //删除所有的安装包及cache
# 更新
sync
# 查看文件占用存储
du -sh
# 分享环境
activate target_env # 进入要分享的环境
conda env export > environment.yml # 当前工作目录下生成一个environment.yml
conda env create -f environment.yml # 拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令从该文件创建环境
# 永久退出conda环境
conda config --set auto_activate_base false
pip源
pip介绍:
• 我们都知道python有很多的第三方库或者说是模块。这些库针对不同的应用,发挥不同的作用。我们在实际的项目中肯定会用到这些模块。那如何将这些模块导入到自己的项目中呢?
• Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载 。
• python有两个著名的包管理工具easy_install和pip。在python 2中easy_install是默认安装的,而pip需要我们手动安装。随着Python版本的提高,easy_install已经逐渐被淘汰,但是一些比较老的第三方库,在现在仍然只能通过easy_install进行安装。目前,pip已经成为主流的安装工具,自Python 2 >=2.7.9或者Python 3.4以后默认都安装有pip。
pip命令:
# 查看pip版本
pip -V
pip --version
# 配置pip源
pip3 config set global.index-url https://mirror.baidu.com/pypi/simple
# 指定版本安装
pip install 库名==版本号
pip install robotframework==2.8.7
# 卸载已安装的库
pip uninstall 库名
pip uninstall requests
# 列出已安装的库
pip list
pip install 的国内源
清华源https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
模型转换环境与模型训练环境
不建议放在一个虚拟环境中 ,深度学习框架版本尽量保持一致
模型训练环境
Ubuntu使用搭建方式一 (采用)
Windows使用搭建方式二 (未采用)
都可搭建训练环境TensorFlow与Pytorch
注意:
- 都要优先装好显卡驱动
- CUDA Toolkit(GPU要用到的集合)和 cudatoolkit(动态链接库不包含驱动)的区别
- cuDNN是深度学习加速库
CUDA Toolkit 和 cuDNN安装教程 (Windows方式二 未采用)
训练环境不需要涉及此步节内容,但需要更新NVIDIA显卡驱动。
Windows需要下载安装CUDA Toolkit 和 cuDNN,并且需要移动 bin include lib 文件和配置环境变量如下图,比较不舒服,而且想要安装到Conda环境里,所以采用方式一Ubuntu安装。
NVIDA显卡驱动程序下载
CUDA Toolkit 和 cuDNN可下载低于系统显卡驱动版本
NVIDA官网下载CUDA
NVIDA官网下载CUDNN
win11+RTX4070Ti 安装 CUDA + cuDNN(图文教程)
查看CUDA版本
CUDA安装教程(超详细)
TensorFlow框架 训练环境安装 (补充 未采用)
安装TensorFlow-GPU2.5.0(方式一ubuntu下)
- 创建、进入虚拟环境
conda create -n py3.6-tensorflow-gpu-2.5.0 python==3.6
conda env list
conda activate py3.6-tensorflow-gpu-2.5.0
conda list
- 安装依赖库cudatoolkit11.2.2和cudnn8.1.0
conda install cudatoolkit=11.2.2 -c conda-forge
conda install cudnn=8.1.0 -c conda-forge
- 安装TensorFlow-GPU2.5.0
pip install tensorflow-gpu=2.5.0-i https://pypi.douban.com/simple/
- conda虚拟环境查看TensorFlow-GPU2.5.0是否可用
import tensorflow as tf
import sys
print(sys.version)
print(tf.version)
gpu_list=tf.config.list_physical_devices('GPU')
print("\ngpu_list:",gpu_list)
gpu_available=tf.test.is_gpu_available()
print("\nTensorFlow-gpu is available?",gpu_available)
- 训练一个模型看看TensorFlow-GPU2.5.0是否可用
Pytorch框架 训练环境安装 (采用)
清华源Index of /anaconda/cloud/pytorch/
Linux and Windows(选取自己适合的环境)
原因:要使用TensorRT 8.5.1.7 | Torch-TensorRT V1.3.0 |
安装早期版本的 PYTORCH
v1.13.0 安装命令
Conda
OSX
# conda
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 -c pytorch
Linux and Windows
# CUDA 11.6
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c pytorch -c nvidia
# CUDA 11.7
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia
# CPU Only
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 cpuonly -c pytorchWheel
OSX
pip install torch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0# ROCM 5.4.2 (Linux only)
Linux and Windows
# ROCM 5.2 (Linux only)
pip install torch==1.13.0+rocm5.2 torchvision==0.14.0+rocm5.2 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/rocm5.2
# CUDA 11.6
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
# CUDA 11.7
pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117
# CPU only
pip install torch==1.13.0+cpu torchvision==0.14.0+cpu torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cpu
- 创建、进入虚拟环境 (ubuntu)
conda create -n py3.9-pytorch-gpu-1.13.0 python==3.9
conda env list
conda activate py3.9-pytorch-gpu-1.13.0
conda list
- 安装PyTorch-GPU1.13.0
地址:离线安装
#在线安装
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidiapip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117#离线安装 本下载目录进入Conda环境安装 地址:https://download.pytorch.org/whl/torch_stable.htmlpip instill torch-1.13.0+cu117-cp39-cp39-linux_x86_64.whl torchvision-0.14.0+cu117-cp39-cp39-linux_x86_64.whl torchaudio-0.13.0+cu117-cp39-cp39-linux_x86_64.whl-----------------------下载wheel包
cu117/torch-1.13.0%2Bcu117-cp39-cp39-linux_x86_64.whl
cu117/torch-1.13.0%2Bcu117-cp39-cp39-win_amd64.whlcu117/torchvision-0.14.0%2Bcu117-cp39-cp39-linux_x86_64.whl
cu117/torchvision-0.14.0%2Bcu117-cp39-cp39-win_amd64.whlcu117/torchaudio-0.13.0%2Bcu117-cp39-cp39-linux_x86_64.whl
cu117/torchaudio-0.13.0%2Bcu117-cp39-cp39-win_amd64.whl
-----------------------
- conda虚拟环境中查看cuda和cudnn版本
python
import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
print(torch.cuda.is_available())
配置YoloV8环境
YoloV8源码地址
YoloV5源码地址
模型转换环境
1. 安装Tensor RT (Windows方式二 未采用)
前提:要使用TensorRT 8.5.1.7 | Torch-TensorRT V1.3.0 |
TensorRT简介
NVIDIA ® TensorRT™ 的核心是一个 C++ 库,可促进在 NVIDIA 图形处理单元 (GPU)上进行高性能推理。TensorRT采用一个经过训练的网络,该网络由一个网络定义和一组经过训练的参数组成,并生成一个高度优化的运行时引擎,为该网络执行推理。 TensorRT通过 C++ 和 Python 提供 API,帮助通过网络定义 API 表达深度学习模型,或通过 ONNX 解析器加载预定义模型,允许TensorRT 在 NVIDIA GPU 上优化和运行它们。TensorRT应用了图形优化、层融合等优化,同时还利用各种高度优化的内核找到了该模型的最快实现。TensorRT 还提供了一个运行时,您可以使用它从NVIDIA Volta™ 一代开始在所有 NVIDIA GPU 上执行此网络。 TensorRT 还包括可选的高速混合精度功能,包括NVIDIA Volta、NVIDIA Turing™、NVIDIA Ampere 架构、NVIDIA Ada Lovelace 架构和NVIDIA Hopper™ 架构。TensorRT支持几乎所有主流深度学习框架,将python框架转换成C++的TensorRT,从而可以加速推理。
安装tensorRT之前确保电脑安装好了英伟达显卡驱动、cudaToolkit,但cuDNN的话不是必须得可以不用安装(官方多次提到目前的TensorRT对cuDNN的依赖很少了。
NVIDIA TensorRT 8.x 下载(Windows 未采用)
NVIDIA TensorRT 8.x 下载
EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
亲亲,这边建议你用TensorRT最新版本的 GA release 呢
适用于x86_64架构的 TensorRT 8.5 GA
选择适用于 Windows 的 Zip 包
NVIDIA官方安装教程
图片来自@城南皮卡丘
解压 Zip
下载TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8.zip文件之后,解压,我这里解压到 E:\Miniconda3\envs\TensorRT-8.6.1.6,解压后的文件目录如下图所示:
有两种方式可选安装
第一种方式:把 E:\Miniconda3\envs\TensorRT-8.6.1.6\lib文件中所有的DLL文件复制到CUDA的安装目录下bin目录下(比如:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\bin)(成功)
第二种方式:直接配置TensorRT的环境变量。具体做法是把E:\Miniconda3\envs\TensorRT-8.6.1.6\lib 目录添加到系统环境变量中(未成功,可能需要安装CUDA Toolkit 和 cuDNN)下图为方式二。
切换到Conda虚拟环境中安装TensorRT
-
命令行切换目录
下面为该虚拟环境安装TensorRT,首先命令行切换到 E:\Miniconda3\envs\TensorRT-8.6.1.6\python 目录下并切换到conda虚拟环境中。 -
pip安装 pip install
Tensorrt Python wheel 文件目前仅支持 Python 版本 3.8 到 3.12,不适用于其他 Python版本。目前仅支持 Linux 操作系统和 x86_64 CPU 架构。这些Python wheel文件应该可以在RHEL 8或更新版本和Ubuntu 20.04或更高版本上工作。
- 选择跟虚拟环境匹配的python版本,这里选择 full installation 的安装模式 ,然后执行pip安装命令。
- 之后我们还需要安装 uff, graphsurgeon, onnx_graphsurgeon 这三个python包,它们就在解压目录下,切换到对应的目录,pip安装。
三个工具大致用途:
UFF: UFF(Universal Framework
Format)是NVIDIA推出的一种用于将深度学习模型转换为TensorRT可读取格式的工具。通过将模型转换为UFF格式,可以更高效地在NVIDIA的GPU上进行推理加速。GraphSurgeon:
GraphSurgeon是一个用于操作神经网络模型图的工具,通常与深度学习框架结合使用。它可以帮助您执行各种图操作,例如插入、删除或替换节点,修改模型结构,以及进行其他定制化的操作。ONNX GraphSurgeon: ONNX
GraphSurgeon是一个用于在ONNX图中进行操作的工具,可以用于修改、优化和转换ONNX模型。您可以使用ONNX。
GraphSurgeon来执行各种操作,例如插入、删除或替换节点,修改模型结构,以及执行其他图操作以满足您的需求。
- 测试
至此,在conda环境下安装tensorRT就全部完成了,接下来验证一下是否安装成功。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tensorrt as trt
if __name__ == "__main__":print(trt.__version__)print("hello trt!!")
进入该虚拟环境中导入 tensorrt 包,如果控制台没有报错,即为安装成功,接下来就可以在conda虚拟环境下使用 tensorrt。
DLL下载https://www.dllme.com/
tensorflow-gpu缺少的cublas64-11.dll等.dll文件全在这了
Could not load dynamic library cublas64_10.dll
2. 安装Tensor RT (Ubuntu本地 未采用)
前提:要使用TensorRT 8.5.1.7 | Torch-TensorRT V1.3.0 |
NVIDIA TensorRT 8.x 下载(Liunx)
NVIDIA TensorRT 8.x 下载
EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
亲亲,这边建议你用TensorRT最新版本的 GA release 呢
选择适用于 Debian 的 TAR 包
NVIDIA官方安装教程
解压 TAR
GitHub TensorRT8.5.1 源码编译安装教程
写入环境变量文件并保存
sudo gedit ~/.bashrc
#将 TensorRT lib 目录的绝对路径添加到环境变量中 LD_LIBRARY_PATH :
#export LD_LIBRARY_PATH=<TensorRT-${version}/lib>:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/wlj/TensorRT-8.5.1.7/lib:$LD_LIBRARY_PATH
source ~/.bashrc
export PATH=/home/lenovo/.local/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
export CUDA_HOME=/usr/local/cuda-11.8
export PATH=$PATH:/usr/local/cuda-11.8/binexport LD_LIBRARY_PATH=/home/wlj/TensorRT-8.5.1.7/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/home/lenovo/torch_tensorrt-2.2.0+cu118-cp38-cp38-linux_x86_64/torch_tensorrt/lib:$LD_LIBRARY_PATHexport LIBTORCH_DIR=/usr/local/lib/libtorch
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBTORCH_DIR/lib:$TORCHTRT_DIR/lib
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$LIBTORCH_DIR/include:$TORCHTRT_DIR/include
export CMAKE_PREFIX_PATH=$LIBTORCH_DIR:$TORCHTRT_DIR
3. 安装Tensor RT (Ubuntu Conda环境 采用)
前提:要使用TensorRT 8.5.1.7 | Torch-TensorRT V1.3.0
TensorRT 依赖CUDA和cuDNN,且根据下载的TensorRT版本,需要严格保证CUDA和cuDNN的版本一致性,否则在运行的时候会出现各种链接库的错误。
TensorRT 8.5.1.7
需版本对应CUDA Toolkit 11.8.0。
需版本对应cuDNN v8.5.0 (August 8th,2022),for CUDA 11.x。
CUDA Toolkit和cuDNN版本对应关系
NVIDIA显卡驱动、CUDA Toolkit 和 cuDNN (Ubuntu 需要本地安装)
NVIDA显卡驱动程序下载
NVIDA官网下载CUDA
NVIDA官网下载CUDNN
显卡驱动卸载
首先我们要卸载旧的驱动,清理干净的标志是,输入以下代码
sudo dpkg --list | grep nvidia-*
没有任何输出
一般来说我们可以用这些命令来卸载
sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove nvidia-\* # 有的不需要加-\
sudo apt-get purge nvidia-\* # 有的不需要加-\
sudo apt-get purge libnvidia-\* # 有的不需要加-\
如果还有输出的话,就直接用
sudo apt-get --purge remove
把输出的那些东西删掉就行了。
禁用集显
一般来说,ubuntu在安装的时候会安装集显的驱动,但有可能会与独显的驱动冲突,因此我们把集显驱动禁用了。
打开配置文件
sudo gedit /etc/modprobe.d/blacklist.conf
在最后一行增加,并重启电脑。
blacklist nouveau
options nouveau modeset=0 #禁用nouveau第三方驱动
如果输入
lsmod | grep nouveau
没有输出的话,证明禁用成功。
安装CUDA
对于搞深度学习的同学来说,CUDA是必要的,因此在这里我一并说明安装方式。 首先我要说明的是,smi中的cuda版本是cuda的driver api版本,而我们安装的cuda一般是指cudatoolkit的版本,大家有时在安装pytorch的时候会发现,安装命令里面依旧有安装cudatoolkit的内容了,因此不装cuda运行gpu版本的pytorch也是可以的,但c++显卡编程以及tensorflow一般是依赖本机的cudatoolkit,因此这一步还是必要的。首先,cudatoolkit的版本不能高于cuda的driver api版本即smi中的cuda版本,而且一般新版本会向下兼容,所以我建议读者尽量安装旧一点的版本,我的smi中cuda是12.0,综合考虑我打算安装11.3.0,下载地址在这里cuda地址。
NVIDA官网下载CUDA
#下载CUDA Toolkit
wget wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
在.bashrc文件中加入
以后卸载可以 run cuda-uninstaller in /usr/local/cuda-11.8/bin
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
验证安装成功
cd /usr/local/cuda/extras/demo_suite
sudo ./deviceQuery
#下载cuDNN
无指令,如下图下图选择版本格式。
NVIDA官网下载CUDNN
- 把这个压缩文件解压,需要注意的是J是大写:
tar xvJf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
- 把inculde和lib(注意不是lib64)里的文件复制到cuda中:
sudo cp include/cudnn.h /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
验证安装成功
执行命令
sudo cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
本节包含从 Python 软件包索引安装 TensorRT 的说明。
Python 软件包索引安装
从 Python 软件包索引安装 TensorRT 时,不需要从 .tar、.deb 或 .rpm 软件包中安装TensorRT。所有需要的库都包含在 Python 包中。不过,如果要访问 TensorRT C++ API 或编译用 C++编写的插件,可能需要头文件,但头文件并未包含在内。此外,如果您已经安装了 TensorRT C++ 库,使用 Python软件包索引版本将安装该库的多余副本,这可能并不可取。有关如何手动安装不捆绑 C++ 库的 TensorRT wheel 的信息,请参阅 Tar 文件安装。如果只需要 Python 支持,可以在本节之后停止。 tensorrt Python 轮文件目前仅支持 Python 3.8 至 3.12 版本,不能用于其他 Python 版本。只有 Linux 注意:如果您没有 root 访问权限,或在 Python 虚拟环境外运行,或出于任何其他原因,您更喜欢user安装,那么请在提供的任何 pip 命令中附加 --user 命令。
- 创建、进入虚拟环境 (方式一ubuntu下)
conda create -n py3.9-tensorrt-8.5.1.7 python==3.9
conda env list
conda activate py3.9-tensorrt-8.5.1.7
conda list
- 通过 pip wheel 安装 TensorRT,继续之前,请确保 pip Python 模块是最新的,并且已安装 wheel Python 模块,否则在安装 TensorRT ,Python 时可能会遇到问题。
#在Conda环境里
python3 -m pip install --upgrade pip
python3 -m pip install wheel
- 安装 TensorRT Python wheel。
# python3 -m pip install --pre --upgrade tensorrt==***
根据想用的TensorRT Module Torch-TensorRT 选择 TensorRT V8.5.1.7 (需要配置pip源)
pip3 config set global.index-url https://mirror.baidu.com/pypi/simple
python3 -m pip install tensorrt==8.5.1.7
使刚刚修改的环境变量文件生效
sudo gedit ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lenovo/miniconda3/my_envs/py3.9-tensorrt-8.5.1.7/lib/python3.9/site-packages/tensorrt
source ~/.bashrc
- 测试
python3
import tensorrt
print(tensorrt.__version__)
assert tensorrt.Builder(tensorrt.Logger())
(可选)安装 TensorRT lean 或 dispatch runtime wheels,它们同样拆分为多个 Python 模块。如果仅使用 TensorRT 运行预构建版本兼容的引擎,可以在不安装常规TensorRT wheels的情况下安装这些wheels 。
python3 -m pip install --pre --upgrade tensorrt_lean
python3 -m pip install --pre --upgrade tensorrt_dispatch
要验证安装是否正常,请使用以下 Python 命令:
导入 tensorrt Python 模块。
确认已安装正确版本的 TensorRT。
创建 Builder 对象,验证 CUDA 安装是否正常。
python3
import tensorrt_lean as trt
print(trt.__version__)
assert trt.Runtime(trt.Logger())python3
import tensorrt_dispatch as trt
print(trt.__version__)
assert trt.Runtime(trt.Logger())
Torch-TensorRT安装 (Ubuntu Conda环境 采用)
原因:要使用Torch-TensorRT(要求 V1.3.0)
Torch-TensorRT V1.3.0
Torch-TensorRT 是 PyTorch/TorchScript/FX 的编译器,通过 NVIDIA 的 TensorRT 深度学习优化器和运行时面向 NVIDIA GPU。与 PyTorch 的即时 (JIT) 编译器不同,Torch-TensorRT 是一个提前 (AOT) 编译器,这意味着在部署 TorchScript 代码之前,需要完成一个显式编译步骤,将标准 TorchScript 或 FX 程序转换为面向 TensorRT 引擎的模块。Torch-TensorRT 作为 PyTorch 扩展运行,并编译无缝集成到 JIT 运行时中的模块。编译后,使用优化的图形应该与运行 TorchScript 模块没有什么不同。还可以在编译时访问 TensorRT 的配置套件,因此可以为模块指定操作精度 (FP32/FP16/INT8) 和其他设置。
Dependencies
These are the following dependencies used to verify the testcases. Check out py/requirements.txt for python dependencies. Torch-TensorRT can work with other versions, but the tests are not guaranteed to pass.
以下是用于验证测试用例的依赖项。有关python依赖项,请查看py/requidents.txt。Torch Tensor RT可以与其他版本配合使用,但不能保证测试通过。Bazel 5.2.0
Libtorch 1.13.0 (built with CUDA 11.7)
CUDA 11.7
cuDNN 8.4.1
TensorRT 8.5.1.7
相关文章:

Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT JetBrains2024(IntelliJ IDEA、PhpStorm、RubyMine、Rider……)安装包Anaconda Miniconda安装.condarc 文件配置镜像源查看conda的配置和源(channel)自定义conda虚拟环境路径conda常用命…...
如何选择合适的BI工具及集成
目录 1 BI工具介绍 1.1 BI工具介绍 1.2 大数据平台与BI工具的集成 2 选择BI工具的考虑因素 2.1 可视化与分析能力 2.2 易用性与学习曲线 2.3 数据源与连接性 2.4 定制化与扩展性 3 案例分析 3.1 案例一:某零售行业的应用 3.2 案例二:某金融企业的应用 3.3 案例三:…...

STM32的串行外设接口SPI
一、SPI简介 1.SPI总线特点 (1)四条通信线 SPI需要SCK、MISO、MOSI、NSS四条通信线来完成数据传输 ,每增加一个从机,多一条NSS通信线。 (2)多主多从 SPI总线允许有多个主机和多个从机。 (3&…...
函数重载
一、概念 C 允许在同一作用域中存在几个功能类似的同名函数,但这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同 int Add(int left, int right) {return leftright; }double Add(double left, double right) {return leftright; }long Add(long left, l…...
单例模式:Python中的“独一无二”模式
引言 单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要控制资源消耗、管理共享资源或者协调系统组件时非常有用。例如,数据库连接、配置文件管理、日志记录等场景。 基础语法介绍 单例模式的…...

C++和OpenGL实现3D游戏编程【连载12】——游戏中音效的使用
🔥C++和OpenGL实现3D游戏编程【目录】 1、游戏中音效的使用 前面我们实现了图片纹理的显示功能,是不是感觉到非常的简单。那么今天我们就继续说下游戏声音的实现。音效也是游戏的灵魂,只有搭配了美妙动听的音效以后,游戏才能令人耳目一新,与玩家产生良好的效果。 音效文…...

Hive数仓操作(八)
一、Hive中的分桶表 1. 分桶表的概念 分桶表是Hive中一种用于提升查询效率的表类型。分桶指的是根据指定列的哈希值将数据划分到不同的文件(桶)中。 2. 分桶表的原理 哈希分桶:根据分桶列计算哈希值,对哈希值取模,将…...

【C++打怪之路Lv6】-- 内存管理
🌈 个人主页:白子寰 🔥 分类专栏:C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分82)&#…...
408知识点自检(二)
一、细节题 边界对齐长度是由什么决定的?64位计算机边界按几字节对齐?单周期cpu、多周期cpu、基本流水线cpu、超标量cpu的cpi分别是多少?中断的处理优先级和响应优先级分别由谁决定?动态分区管理需要用什么重定位方式?…...

C语言复习概要(二)
本文目录 C语言中的数组与函数详解1. 引言2. 数组2.1. 什么是数组?语法:示例: 2.2. 数组的初始化示例 1:在声明时初始化示例 2:部分初始化示例 3:运行时赋值 2.3. 数组的访问与修改示例: 2.4. 多…...

小程序原生-利用setData()对不同类型的数据进行增删改
1. 声明和绑定数据 wxml文件 <view> {{school}} </view> <view>{{obj.name}}</view> <view id"{{id}}" > 绑定属性值 </view> <checkbox checked"{{isChecked}}"/> <!--算数运算--> <view>{{ id …...

.NET Core 集成 MiniProfiler性能分析工具
前言: 在日常开发中,应用程序的性能是我们需要关注的一个重点问题。当然我们有很多工具来分析程序性能:如:Zipkin等;但这些过于复杂,需要单独搭建。 MiniProfiler就是一款简单,但功能强大的应用…...

【JAVA开源】基于Vue和SpringBoot的旅游管理系统
本文项目编号 T 063 ,文末自助获取源码 \color{red}{T063,文末自助获取源码} T063,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...
信息学奥赛一本通 1885:【14NOIP提高组】寻找道路 | 洛谷 P2296 [NOIP2014 提高组] 寻找道路
【题目链接】 洛谷 P2296 [NOIP2014 提高组] 寻找道路 ybt 1885:【14NOIP提高组】寻找道路 【题目考点】 1. 图论:广搜 2. 图论:反图 【解题思路】 设path数组,path[i]表示顶点i出发到终点t是否有路径。 先求path数组&#…...

JVM 基础、GC 算法与 JProfiler 监控工具详解
目录 1、引言 1.1 JVM内存与本地内存 1.2 JVM与JDK的关系 2、JVM基础 2.1 JVM(Java Virtual Machine) 2.2 Java与JVM的关系 2.3 JVM的内存结构 2.3.1 堆内存 2.3.2 栈内存 2.3.3 方法区 2.3.4 本地方法栈 2.3.5 程序计数器(PC寄存…...

nodejs安装及环境配置
一、下载 进入官网https://nodejs.org/en/download/prebuilt-installer下载node.js安装包,选择对应版本的node,这里我选择的是14.21.3版本 二、安装 1、下载完成后,双击“node-v14.21.3-x64.msi”,开始安装Node.js 2、勾选复…...

无人机电力巡检:点亮电力巡检新视野!
一、无人机电力巡查的优势 提高巡检效率:无人机可以搭载高清摄像头、红外热像仪等先进设备,实时拍摄和传输图像,帮助巡检人员快速发现潜在问题,如电线破损、绝缘子污损、设备过热等,从而大大缩短了巡检周期。 降低人…...

详细介绍:API 和 SPI 的区别
文章目录 Java SPI (Service Provider Interface) 和 API (Application Programming Interface) 的区别详解目录1. 定义和目的1.1 API (Application Programming Interface)1.2 SPI (Service Provider Interface) 2. 使用场景2.1 API 的应用场景2.2 SPI 的应用场景 3. 加载和调…...

【面向对象】设计模式概念和分类
零.前提提要 本文章是我考中级软件设计师时的笔记,基本都是一些自己的思路和见解,现记录一下,希望可以帮助到即将考证的同学。 一.面向对象设计模式的概念 二.面向对象的设计模式分类 设计模式确定了所包含的类和实例、他们的角色和写作方式以…...
APK安装包arm64-v8a、armeabi-v7a、x86、x86_64如何区别?(2024年10月1日)
其实就是安卓CPU的进步史 安卓CPU类型: arm64-v8a: 第8代、64位ARM处理器,目前手机大多数是此架构(新手机,可以无脑选择)armeabiv-v7a: 第七代及以上的 ARM 处理器。2011年5月以后生产的大部分安卓设备都使用它armeabi: 第5代、第6代的ARM处理器&#…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...