PyTorch-GPU & TensorFlow-GPU(及yolo)*精简* 安装全流程

首先强调一点,从显卡驱动版本到cuda版本再到TensorFlow版本,都有可能存在不兼容问题,需要到官网查阅版本兼容情况。当然如果你不需要指定使用某些版本,直接按下文中的推荐即可。

首先强调一点,从显卡驱动版本到cuda版本再到TensorFlow版本,都有可能存在不兼容问题,需要到官网查阅版本兼容情况。当然如果你不需要指定使用某些版本,直接按下文中的推荐即可。

首先强调一点,从显卡驱动版本到cuda版本再到TensorFlow版本,都有可能存在不兼容问题,需要到官网查阅版本兼容情况。当然如果你不需要指定使用某些版本,直接按下文中的推荐即可。



0核心步骤:

1.去pytorch官网看所需pytorch对应的cuda版本号(亲测,其实高版本的cuda可以向下兼容要求低版本cuda的pytorch,但是低cuda版本要求的TensorFlow-gpu就很容易出现各种问题!!!所以一般较新的显卡也只能迁就tf进行cuda和cudnn的版本选择,高了或低了亲测都很可能会有问题!!![不过,有可能也是可以向下兼容tf的,你跑程序的时候老报错,可能不是cuda的问题,而是jupyter或者spyder的问题!!!所以不要用jupyter和spyder测试安装的cuda是否与tf适配,而是先通过运行py脚本的方式来测试])

2.去cuda官网下载对应的cuda toolkit安装包和cuDNN,并安装

3.安装pytorch

# 推荐版本:

CUDA11.1,cuDNN8.9.7forCUDA11forWindows;

python3.8;pytorch1.9.1;TensorFlow-GPU2.10.0




1. 安装自己显卡型号的最新显卡驱动(图形驱动程序与GeforceExperience)NVIDIA 驱动程序下载

(注意,虽然后续cuda的安装界面和这个很像,但不是一个东西。本指南后面会提及其安装)


 2.visual studio:

最新支持的 Visual C++ 下载 (microsoft.com)

more: [VS2017下载地址和安装教程(图解) (biancheng.net)]

2.2.下载cudart64_110.dll文件(https://www.dll-files.com)(如有需要,也可以在这个网站下载其他dll文件)

下载后dll文件放到 C:\Windows\System32 ,如果后续tf还是报错说没有这个文件,那就看看这个:[Support and Frequently Asked Questions | DLL‑files.com (dll-files.com)]


3.先后安装cuda(即cudatoolkit)、cudnn

版本号:请先跳到4.1步,自行根据后续所需的PyTorch和TensorFlow的版本进行cuda和cudnn版本的选择_如下图,在PyTorch和TensorFlow官网会有推荐。选好cuda和cudnn版本后回到这里进行安装。接下来使用的版本只是我曾成功安装和使用的,但未必是对你合适的。

PyTorch官网:Start Locally | PyTorch

TensorFlow官网:使用 pip 安装 TensorFlow (google.cn)  [Tensorflow-gpu 与 Python、 cuda、cuDNN 版本关系]

方法一(推荐):官网下载安装包安装

cuda所有版本下载:CUDA Toolkit Archive | NVIDIA Developer

cudnn所有版本下载:cuDNN Archive | NVIDIA Developer

具体安装教程可参考以下任一详细教程中的相关部分:

Cuda和cuDNN安装教程(超级详细)-CSDN博客

Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9)-CSDN博客

方法二(不推荐,因为是这样安装的cuda toolkit的不完整版):用命令行安装(最好在cmd或anaconda prompt等命令行窗口进行安装,而不是在具体python环境下)

conda install cudatoolkit=11.2


conda install cudnn=8.1

更多有用信息(可以不看):

	
# conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=10.2 -c pytorch #  cudatoolkit
	上述命令在使用conda安装torch时候,会提供一个cudatoolkit工具包,其中包含了CUDA的运行API(主要是一些动态链接库文件libXXXX.so.xxx等),
	在运行基于pytorch的代码时会使用conda提供的cudatoolkit包,而忽视Nvidia官方的CUDA Toolkit。
	!!  注意1: cuda/cuDNN也可以使用conda安装,即直接使用conda install cuda 和 cudnn,conda install cudatoolkit==XXX。
			其主要包含应用程序在使用CUDA相关的功能时所依赖的动态链接库。conda安装只会安装一些计算库,不会安装编译工具。
			而官方的cuda包包含的东西会完整一些。
	!!  注意2: 如果项目代码需要使用python setup.py develop或./make.sh来编译依赖cuda的torch模块(如C语言脚本)时候,
	编译过程使用的是系统自带的CUDA而不是conda安装的CUDA包,当系统自带CUDA版本不支持项目代码时,
	会引发一些奇怪的问题,所以最好是保持conda安装的cudatoolkit版本与系统自带版本(nvcc -V查看)一致。
	|||  nvidia-smi是 CUDA Driver API(驱动API)的版本,如在这里是10.0。
	|||  而nvcc -V的结果是对应 CUDA Runtime API(运行API)的版本。
	||||||  cuda是为“GPU通用计算”构建的运算平台,是nvidia GPU实现高效并行计算的平台,也是一门语言;
	||||||  cuda toolkit是cuda的工具箱,包含开发工具、编译器等,深度学习中“安装cuda”指的就是“安装cuda toolkit”,官网安装的是完整版,conda安装的是不完整版;
	||||||  (NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分);
	||||||  cuDNN是基于cuda的  针对DNN中的基础操作/运算进行GPU加速  的库。
	||||||  深度学习需要安装的是:cuda toolkit和cuDNN,找教程,去官网下载并安装(nvidia-smi中的CUDA Version表明的是当前显卡驱动可以安装的cuda最高版本)



4.1.安装PyTorch-GPU 或 TensorFlow-GPU(在python目标环境中):

版本号只是我曾成功安装和使用的,但未必是对你合适的,请根据后续可能会用到的库(如yolo库)进行选择)

NOTE 1 因为所需版本和cuda可能不同,具体的安装命令可去官网查看

PyTorch官网:Start Locally | PyTorch

TensorFlow官网:使用 pip 安装 TensorFlow (google.cn) [Tensorflow-gpu 与 Python、 cuda、cuDNN 版本关系]

(亲测,其实高版本的cuda可以向下兼容要求低版本cuda的pytorch,但是低cuda版本要求的TensorFlow-gpu就很容易出现各种问题!!!所以一般较新的显卡也只能迁就tf进行cuda和cudnn的版本选择,高了或低了亲测都很可能会有问题!!![不过,有可能也是可以向下兼容tf的,你跑程序的时候老报错,可能不是cuda的问题,而是jupyter或者spyder的问题!!!所以不要用jupyter和spyder测试安装的cuda是否与tf适配,而是先通过运行py脚本的方式来测试])

(TensorFlow-gpu安装后可能需要重启电脑后tf才能识别GPU)

以下是PyTorch官网的查询案例:

如果你的电脑可以装11.8或者12.1就直接粘贴复制,不行就去找以前的版本,如CUDA。

以下是tf的案例:

NOTE 2 也可以在官网直接下载whl文件然后本地安装。

python环境下命令行安装

# 创建并加入Python环境(可选,自行决定)
conda create -n name_abc python=3.8 -y
conda activate name_abc



# 安装tf(推荐pip不推荐conda)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.10.0 # 推荐使用0

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.2.3 # 推荐使用1


# Install NVCC (在环境里安装NVCC,之前没安装导致换什么版本的cuda都只能跑简单运算,跑不了自己写的模块,一跑就报错)
conda install -c nvidia cuda-nvcc
# conda install -c nvidia cuda-nvcc=11.3.58 -y 


# 安装 pytorch (1.7.1+cu110、推荐1.9+cu111)(推荐pip不推荐conda)
pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html  # 推荐使用0

pip3 install torch==1.8.1+cu111 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu111  # 推荐使用1

pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 --extra-index-url https://download.pytorch.org/whl/cu111   # 推荐使用2

pip3 install torch==1.8.1+cu111 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu111  --use-feature=2020-resolver # 推荐使用3

pip3 install torch==1.8.1 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 # 官网提供(据说官网自动监测并提供电脑支持的版本)

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 -c pytorch

conda install pytorch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -c pytorch # +cu111

4.2.可选为安装特定库做准备,如yolo的库)——安装requirements(在python目标环境中):

pip install -r requirements.txt

其中 requirements.txt 文件在目标库中(github仓库)通常会给出。

case1:如下是yolov5库所给的,可以跑通(如果有安不了的的就多试几次,某些库是在不行就先注释掉,然后单独安装有问题的库):

# YOLOv5 requirements
# Usage: pip install -r requirements.txt

# Base ------------------------------------------------------------------------
gitpython>=3.1.30
matplotlib>=3.3
numpy>=1.23.5
opencv-python>=4.1.1
pillow>=10.3.0
psutil  # system resources
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
thop>=0.1.1  # FLOPs computation
torch>=1.8.0  # see https://pytorch.org/get-started/locally (recommended)
torchvision>=0.9.0
tqdm>=4.64.0
ultralytics>=8.0.232
# protobuf<=3.20.1  # https://github.com/ultralytics/yolov5/issues/8012

# Logging ---------------------------------------------------------------------
# tensorboard>=2.4.1
# clearml>=1.2.0
# comet

# Plotting --------------------------------------------------------------------
pandas>=1.1.4
seaborn>=0.11.0

# Export ----------------------------------------------------------------------
# coremltools>=6.0  # CoreML export
# onnx>=1.10.0  # ONNX export
# onnx-simplifier>=0.4.1  # ONNX simplifier
# nvidia-pyindex  # TensorRT export
# nvidia-tensorrt  # TensorRT export
# scikit-learn<=1.1.2  # CoreML quantization
# tensorflow>=2.4.0,<=2.13.1  # TF exports (-cpu, -aarch64, -macos)
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev>=2023.0  # OpenVINO export

# Deploy ----------------------------------------------------------------------
setuptools>=65.5.1 # Snyk vulnerability fix
# tritonclient[all]~=2.24.0

# Extras ----------------------------------------------------------------------
# ipython  # interactive notebook
# mss  # screenshots
# albumentations>=1.0.3
# pycocotools>=2.0.6  # COCO mAP
wheel>=0.38.0 # not directly required, pinned by Snyk to avoid a vulnerability

case2:如下是我某一次根据yolov7库所给的文件修改后成功跑通的:

# Usage: pip install -r requirements.txt

# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.1
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0,!=1.12.0
torchvision>=0.8.1,!=0.13.0
tqdm>=4.41.0
protobuf<4.21.3

# Logging -------------------------------------
tensorboard>=2.4.1
# wandb

# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0

# Export --------------------------------------
# coremltools>=4.1  # CoreML export
# onnx>=1.9.0  # ONNX export
# onnx-simplifier>=0.3.6  # ONNX simplifier
# scikit-learn==0.19.2  # CoreML quantization
# tensorflow>=2.4.1  # TFLite export
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev  # OpenVINO export

# Extras --------------------------------------
ipython  # interactive notebook
psutil  # system utilization
thop  # FLOPs computation
# albumentations>=1.0.3
pycocotools>=2.0  # COCO mAP
# roboflow




# TensorRT-------------------------------------

nvidia-pyindex
pycuda # or python3-pycuda ?
protobuf<4.21.3
onnxruntime-gpu
onnx>=1.9.0   # ONNX export
onnx-simplifier>=0.3.6   # ONNX simplifier

#pip install --upgrade nvidia-tensorrt # 7.0.0.11



5.1.在Python中验证torch:

import torch
torch.cuda.is_available()

5.2.在Python中验证tf:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
print(tf.__version__)
a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)
print('GPU_available:', tf.test.is_gpu_available())
print('GPUs:', tf.config.list_physical_devices('GPU'))

输出结果:

测速与对比:

import tensorflow as tf
import timeit
 
#指定在cpu上运行
def cpu_run():
    with tf.device('/cpu:0'):
        cpu_a = tf.random.normal([10000, 1000])
        cpu_b = tf.random.normal([1000, 2000])
        c = tf.matmul(cpu_a, cpu_b)
    return c
 
#指定在gpu上运行 
def gpu_run():
    with tf.device('/gpu:0'):
        gpu_a = tf.random.normal([10000, 1000])
        gpu_b = tf.random.normal([1000, 2000])
        c = tf.matmul(gpu_a, gpu_b)
    return c

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print("cpu:", cpu_time, "  gpu:", gpu_time)



YOLOv8安装与验证

// 直接安装即可
pip install ultralytics






old:

// 下载并加入目录:

https://github.com/ultralytics/ultralytics && unzip ultralytics-main.zip && cd ultralytics-main

// 或:
git clone https://github.com/ultralytics/ultralytic.git && cd ultralytics

// 编译安装
pip install -e .
// 验证(也可在cmd终端尝试运行)
yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg

# 验证2
from ultralytics import YOLO
yolo = YOLO("./yolov8n.pt", task="detect")
result = yolo(source="./ultralytics/assets/bus.jpg", save=True)



更多(mmcv;onnx;tensorRT等)

####################################################################################################################

安装 mmcv-full (版本为1.1.5) 按照mmdetection官方说明安装(需要对应cuda及torch版本)
(推荐使用1:pip install openmim; mim install mmcv-full==1.3.17)
(推荐使用2:pip install mmcv-full==1.3.17 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.1/index.html)(替换自己的cuda和torch版本号)
(pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.1/index.html)(替换自己的cuda和torch版本号)
(mmdetection官方说明  https://github.com/open-mmlab/mmdetection/blob/master/docs/zh_cn/get_started.md)

## 安装mmcv-full时编译报错:https://blog.csdn.net/goodgoodstudy___/article/details/121577651?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166055301016781685371064%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166055301016781685371064&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~pc_rank_v36-2-121577651-null-null.142^v40^pc_rank_v36,185^v2^control&utm_term=lib%5Csite-packages%5Ctorch%5Cutils%5Ccpp_extension.py%3A304%3A%20UserWarning%3A%20Error%20checking%20compiler%20version%20for%20cl%3A%20%5BWinError%202%5D%20%E7%B3%BB%E7%BB%9F%E6%89%BE%E4%B8%8D%E5%88%B0%E6%8C%87%E5%AE%9A%E7%9A%84%E6%96%87%E4%BB%B6%E3%80%82%20%20%20%20%20%20%20%20%20warnings.warn%28fError%20checking%20compiler%20version%20for%20%7Bcompiler%7D&spm=1018.2226.3001.4187

克隆 mmdetection: git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
安装其他依赖:pip install -r requirements.txt
编译 mmdetection: pip install -v -e .   或者  python setup.py develop




####################################################################################################################

# Usage: pip install -r requirements.txt

# Export --------------------------------------
# coremltools>=4.1  # CoreML export
# onnx>=1.9.0  # ONNX export
# onnx-simplifier>=0.3.6  # ONNX simplifier
# scikit-learn==0.19.2  # CoreML quantization
# tensorflow>=2.4.1  # TFLite export
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev  # OpenVINO export

# TensorRT-------------------------------------
nvidia-pyindex
pycuda # or python3-pycuda ?
protobuf<4.21.3
onnxruntime-gpu
onnx>=1.9.0   # ONNX export
onnx-simplifier>=0.3.6   # ONNX simplifier

# pip install --upgrade nvidia-tensorrt # 7.0.0.11;8.2.1.8
# tensorRT安装教程:https://www.zhoujianguo.ltd/#/fore/article?id=134

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值