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
注意:

  1. 都要优先装好显卡驱动
  2. CUDA Toolkit(GPU要用到的集合)和 cudatoolkit(动态链接库不包含驱动)的区别
  3. 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下)

  1. 创建、进入虚拟环境
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
  1. 安装依赖库cudatoolkit11.2.2和cudnn8.1.0
conda install cudatoolkit=11.2.2 -c conda-forge
conda install cudnn=8.1.0 -c conda-forge
  1. 安装TensorFlow-GPU2.5.0
pip install tensorflow-gpu=2.5.0-i https://pypi.douban.com/simple/
  1. 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)
  1. 训练一个模型看看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
  1. 创建、进入虚拟环境 (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
  1. 安装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
-----------------------
  1. 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
  1. 命令行切换目录
    下面为该虚拟环境安装TensorRT,首先命令行切换到 E:\Miniconda3\envs\TensorRT-8.6.1.6\python 目录下并切换到conda虚拟环境中。

  2. pip安装 pip install

Tensorrt Python wheel 文件目前仅支持 Python 版本 3.8 到 3.12,不适用于其他 Python版本。目前仅支持 Linux 操作系统和 x86_64 CPU 架构。这些Python wheel文件应该可以在RHEL 8或更新版本和Ubuntu 20.04或更高版本上工作。

在这里插入图片描述

  1. 选择跟虚拟环境匹配的python版本,这里选择 full installation 的安装模式 ,然后执行pip安装命令。

在这里插入图片描述
在这里插入图片描述

  1. 之后我们还需要安装 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来执行各种操作,例如插入、删除或替换节点,修改模型结构,以及执行其他图操作以满足您的需求。

  1. 测试
    至此,在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
在这里插入图片描述

  1. 把这个压缩文件解压,需要注意的是J是大写:
tar xvJf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
  1. 把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 命令。

  1. 创建、进入虚拟环境 (方式一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
  1. 通过 pip wheel 安装 TensorRT,继续之前,请确保 pip Python 模块是最新的,并且已安装 wheel Python 模块,否则在安装 TensorRT ,Python 时可能会遇到问题。
#在Conda环境里
python3 -m pip install --upgrade pip
python3 -m pip install wheel
  1. 安装 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

在这里插入图片描述

  1. 测试
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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-pagination组件封装

组件使用 源代码&#xff1a; <script setup> import Pagination from /components/pagination/index.vue import {ref} from "vue";const pageNum ref(1) const pageSize ref(10) const total ref(120)function loadData() {// 加载数据 } </script>…

【Unity】unity安卓打包参数(个人复习向/有不足之处欢迎指出/侵删)

1.Texture Compression 纹理压缩 设置发布后的纹理压缩格式 Use Player Settings:使用在播放器设置中设置的纹理压缩格式 ETC&#xff1a;使用ETC格式&#xff08;兼容&#xff09; ETC2&#xff1a;使用ETC2格式&#xff08;很多设备不支持&#xff09; ASTC&#xff1a;使用…

PCIe6.0 AIC金手指和板端CEM连接器信号完整性设计规范

先附上我之前写的关于PCIe5.0金手指的设计解读&#xff1a; PCIe5.0的Add-in-Card(AIC)金手指layout建议&#xff08;一&#xff09;_pcie cem-CSDN博客 PCIe5.0的Add-in-Card(AIC)金手指layout建议&#xff08;二&#xff09;_gnd bar-CSDN博客 首先&#xff0c;相较于PCI…

《深度学习》【项目】OpenCV 发票识别 透视变换、轮廓检测解析及案例解析

目录 一、透视变换 1、什么是透视变换 2、操作步骤 1&#xff09;选择透视变换的源图像和目标图像 2&#xff09;确定透视变换所需的关键点 3&#xff09;计算透视变换的变换矩阵 4&#xff09;对源图像进行透视变换 5&#xff09;对变换后的图像进行插值处理 二、轮廓检测…

Python | Leetcode Python题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution:def fourSumCount(self, A: List[int], B: List[int], C: List[int], D: List[int]) -> int:countAB collections.Counter(u v for u in A for v in B)ans 0for u in C:for v in D:if -u - v in countAB:ans countAB…

网约班车升级手机端退票

背景 作为老古董程序员&#xff0c;不&#xff0c;应该叫互联网人员&#xff0c;因为我现在做的所有的事情&#xff0c;都是处于爱好&#xff0c;更多的时间是在和各行各业的朋友聊市场&#xff0c;聊需求&#xff0c;聊怎么通过IT互联网 改变实体行业的现状&#xff0c;准确的…

k8s实战-2

k8s实战-2 一、Deployment1.多副本2.扩缩容3.自愈&故障转移4.滚动更新5.版本回退 二、Service1.ClusterIP2.NodePort 总结 一、Deployment Deployment 是 k8s 中的一个资源对象&#xff0c;用于管理应用的副本&#xff08;Pods&#xff09;。它的主要作用是确保集群中运行…

二分查找一>山脉数组的峰顶索引

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; public int peakIndexInMountainArray(int[] arr) {int left 1, right arr.length-2;while(left < right) {int mid left (right-left1) / 2;if(arr[mid] > arr[mid-1]) left mid;else right mid-1;}ret…

软件测试:postman详解

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…

更新C语言题目

1.以下程序输出结果是() int main() {int a 1, b 2, c 2, t;while (a < b < c) {t a;a b;b t;c--;}printf("%d %d %d", a, b, c); } 解析:a1 b2 c2 a<b 成立 ,等于一个真值1 1<2 执行循环体 t被赋值为1 a被赋值2 b赋值1 c-- c变成1 a<b 不成立…

如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程

Linux系统Docker搭建Poste.io电子邮件服务器&#xff0c;搭建属于自己的域名邮箱服务器&#xff0c;可以无限收发电子邮件&#xff08;Email&#xff09;&#xff01; 视频教程&#xff1a;https://www.bilibili.com/video/BV11p1mYaEpM/ 前言 什么是域名邮箱&#xff1f; …

各省份-产业链现代化水平(2001-2022年)

产业链现代化水平是一个综合性指标&#xff0c;它为我们提供了一个多维度的视角来评估各省份在产业链现代化进程中的发展水平。这个指标涵盖了技术创新、产业升级、生产效率、产业结构优化等多个方面&#xff0c;包含原始数据、测算结果以及参考文献。 2001年-2022年各省份-产…

论文翻译 | Generated Knowledge Prompting for Commonsense Reasoning

摘要 整合外部知识是否有利于常识推理&#xff0c;同时保持预训练序列模型的灵活性&#xff0c;这仍然是一个悬而未决的问题。为了研究这个问题&#xff0c;我们开发了生成知识提示&#xff0c;它包括从语言模型生成知识&#xff0c;然后在回答问题时提供知识作为附加输入。我们…

【Java】IntelliJ IDEA开发环境安装

一、下载 官方地址&#xff1a;https://www.jetbrains.com/idea/ 点击Download直接下载 二、安装 双击安装包&#xff0c;点击Next 选择安装路径&#xff0c;点击Next 勾选安装内容 安装完成。 三、创建项目 打开IDEA&#xff0c;填写项目名称&#xff0c;选择项目安装路径…

如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue

TOC ssm779基于SSM的宠物服务平台的设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#x…

安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo

安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo 安全帽头盔检测数据集介绍 数据集名称 安全帽头盔检测数据集 (Safety Helmet and Person Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型&#xff08;包括YOLOv5、YOLOv6、YOLOv7…

【C++ STL】手撕vector,深入理解vector的底层

vector的模拟实现 前言一.默认成员函数1.1常用的构造函数1.1.1默认构造函数1.1.2 n个 val值的构造函数1.1.3 迭代器区间构造1.1.4 initializer_list 的构造 1.2析构函数1.3拷贝构造函数1.4赋值运算符重载 二.元素的插入,删除,查找操作2.1 operator[]重载函数2.2 push_back函数:…

Redis篇(面试题 - 连环16炮)(持续更新迭代)

目录 目录 目录 &#xff08;第一炮&#xff09;一、Redis&#xff1f;常用数据结构&#xff1f; 1. 项目里面到了Redis&#xff0c;为什么选用Redis&#xff1f; 2. Redis 是什么&#xff1f; 3. Redis和关系型数据库的本质区别有哪些&#xff1f; 4. Redis 的线程模型…

4 思科模拟器的介绍和使用

4 思科模拟器的介绍和使用 思科的IOS给我们提供了三大模式 设备开机后&#xff0c;进入的模式是【用户模式】 Router表示设备的名称 “>”表示用户模式 在用户模式输入"?" 可列出在用户模式可以使用的命令 第二种模式是特权模式,输入enable进入特权模式&…

【C++】入门基础介绍(上)C++的发展历史与命名空间

文章目录 1. 前言2. C发展历史2. 1 C版本更新特性一览2. 2 关于C23的一个小故事: 3. C的重要性3. 1 编程语言排行榜3. 2 C在工作领域中的应用 4. C学习建议和书籍推荐4. 1 C学习难度4. 2 学习书籍推荐 5. C的第一个程序6. 命名空间6. 1 namespace的价值6. 2 namespace的定义6. …