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.rhkb.cn/news/442304.html

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

相关文章

破解反编译:使用 ClassFinal 保护你的SpringBoot代码

在当今数字化时代&#xff0c;保护源代码的安全性变得愈发重要。无论是企业的核心算法还是独特的业务逻辑&#xff0c;代码一旦暴露&#xff0c;便可能导致竞争优势的丧失和商业机密的泄露。因此&#xff0c;在使用 Java 和 Spring Boot 开发项目时&#xff0c;理解从源代码到可…

websocket连接异常报错1006

目录&#xff1a; 1、问题现象2、问题原因3、解决方案 1、问题现象 WebSocket状态码的作用&#xff1a; 在WebSocket协议中&#xff0c;状态码用于表示连接状态和错误信息。通过状态码&#xff0c;我们可以快速判断连接是否成功&#xff0c;以及出现错误时的原因。常见的WebSo…

教培机构如何向知识付费转型

在数字化时代&#xff0c;知识付费已成为一股不可忽视的潮流。面对这一趋势&#xff0c;教育培训机构必须积极应对&#xff0c;实现向知识付费的转型&#xff0c;以在新的市场环境中立足。 一、教培机构应明确自身的知识定位。 在知识付费领域&#xff0c;专业性和独特性是关键…

VUE前后端分离毕业设计题目项目有哪些,VUE程序开发常见毕业论文设计推荐

目录 0 为什么选择Vue.js 1 Vue.js 的主要特点 2 前后端分离毕业设计项目推荐 3 后端推荐 4 总结 0 为什么选择Vue.js 使用Vue.js开发计算机毕业设计是一个很好的选择&#xff0c;因为它不仅具有现代前端框架的所有优点&#xff0c;还能让你专注于构建高性能、高可用性的W…

Matlab实现白鲸优化算法优化回声状态网络模型 (BWO-ESN)(附源码)

目录 1.内容介绍 2部分代码 3.实验结果 4.内容获取 1内容介绍 2部分代码 %% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear % 清空变量 clc % 清空命令行 tic load bwand %%…

CC2530定时器1中断实现定时1-3

源码 #include "iocc2530.h"//引用CC2530头文件int t1_Count0; //定时器1溢出次数计数void Init_Led(void){ /*******************LED1初始化部分******************/P1SEL &~ 0x01; //设置P1_0口为通用I/O口P1DIR | 0x01; //设置P1_0口为输出口P…

软考越来越难了,2024年软考究竟还值不值得考?

最近不少同学沟通&#xff0c;聊到软考现在越来越难了&#xff0c;考了两三次都没过&#xff0c;也有不少新同学咨询软考考试的一些福利政策&#xff0c;投入大量的物力&#xff0c;财力&#xff0c;精力&#xff0c;那么到底软考值不值得考呢&#xff1f; 01 / 关于软考 软考…

Leetcode 10. 正则表达式匹配

1.题目基本信息 1.1.题目描述 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s 的&#xff0c;而不是部分…

k8s的控制节点不能访问node节点容器的ip地址

master控制node服务器添加容器后,访问不了该node服务器容器的ip,只能在node服务器访问 排查后发现是k8s的master服务器和node节点的网址网段和k8s初始化时提示的ip网段不一致 我之前是192.168.137.50, 实际上master主机期望的是192.168.1.50 解决方案: 1.删除服务器后重建ma…

python爬虫 - 进阶requests模块

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、SSL证书问题 &#xff08;一&#xff09;跳过 SSL 证书验证 &#xff0…

Vue3中提到的Tree-shaking

我们知道&#xff0c;Vue3中提到一个叫Tree-shaking的东西&#xff0c;其实也并不是一个新的东西&#xff0c;有人称之为"摇树优化"&#xff0c;什么意思&#xff1f; 按照作者的原话解释&#xff0c;Tree-shaking其实就是&#xff1a;把无用的模块进行“剪枝”&…

【Linux】进程间通信——System V消息队列和信号量

一、消息队列 1.1 概念 进程间通信的原理是让不同进程看到同一份资源&#xff0c;资源种类的不同就决定了通信方式的差异。如果用管道通信&#xff0c;则资源是文件缓冲区&#xff1b;如果用共享内存&#xff0c;则资源是内存块 消息队列是由操作系统提供的资源&#xff0c;…

postman自动化实战总结

Postman实战总结 简介 本次实战内容主要包括如下几点&#xff1a; l 背景介绍 l Postman使用&#xff0c;侧重于自动化实现&#xff0c;基础使用不做介绍 l 可视化Newman介绍 l 框架特色 l 实战中的坑 背景 随着国内软件技术的高速发展&#xff0c;越来越多的手工测试…

解决谷歌浏览器在安卓手机上的常见问题

在使用安卓手机浏览网页时&#xff0c;谷歌浏览器无疑是许多用户的首选。然而&#xff0c;在使用过程中&#xff0c;用户可能会遇到一些常见问题&#xff0c;如搜索图片困难、缓存积累过多导致浏览器卡顿&#xff0c;以及无法下载视频等。本文将针对这些问题&#xff0c;提供详…

【Linux】详解Linux下的工具(内含yum指令和vim指令)

文章目录 前言1. Linux下软件安装的方式2. yum2.1 软件下载的小知识2.2 在自己的Linux系统下验证yum源的存在2.3 利用yum指令下载软件2.4 拓展yum源&#xff08;针对于虚拟机用户&#xff09; 3. vim编辑器3.1 vim是什么&#xff1f;3.2 如何打开vim3.2 vim各模式下的讲解3.2.1…

【C语言】猜数字小游戏

&#x1f602;个人主页: 起名字真南 &#x1f923;个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 随机数的生成1.1 rand1.2 srand1.3 time1.4 设置随机数范围 2 猜数字游戏实现 前言&#xff1a;我们学习完前面的循环以后可以写一个猜数字小游戏 1 随机数的生成 想要完成…

新生培训 day1 C语言基础 顺序 分支 循环 数组 字符串 函数

比赛地址 b牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ C语言数据类型 字符 整型数 int 2e9 long long 9e18 浮点数 代码示例 /** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */ #include <stdio.h>int main() {// 定义变量in…

QT-空窗口主窗口对话框

1. QMainWindow QMainWindow 用来创建主窗口 主窗口包含&#xff1a; 标题栏&#xff08;Window title&#xff09;、菜单栏&#xff08;MenuBar&#xff09;、工具栏&#xff08;ToolBar&#xff09;、状态栏&#xff08;StatusBar&#xff09;、停靠部件&#xff08;DockWid…

Ansible学习之ansible-pull命令

想要知道ansible-pull是用来做什么的&#xff0c;就需要了解Ansible的工作模&#xff0c;Ansible的工作模式有两种&#xff1a; push模式 push推送&#xff0c;这是Ansible的默认模式&#xff0c;在主控机上编排好playbook文件&#xff0c;push到远程主机上来执行。pull模式 p…

RISC-V知识点目录

分支预测 分支预测概述https://blog.csdn.net/zhangshangjie1/article/details/136947089?sharetypeblogdetail&sharerId136947089&sharereferPC&sharesourcezhangshangjie1&spm1011.2480.3001.8118分支指令的方向预测https://blog.csdn.net/zhangshangjie1/a…