首先强调一点,从显卡驱动版本到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
具体安装教程可参考以下任一详细教程中的相关部分:
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