Pytorch&YOLO GPU版环境配置
近期想学习YOLO V8,需要用pytorch配置GPU加速,网上找到很多教程都是CPU版本的,零零散散整理了各位大佬的教程,最终结合自己的实践,总结出一个成功率高一点的教程。
1. CUDA安装
1.1 版本确认
- Win+R,输入CMD,回车确认。
- 打开终端,使用nvidia-smi指令,检查自己的CUDA版本、驱动版本,如图我的是cuda12.4,驱动版本552.22。
- 如果想查看cuda的详细版本,可以在桌面右键,找到NVIDIA控制面板(Win11先点“显示更多选项”)。
- 点击进入,找到左下角系统信息,点击进入。
- 在新打开的窗口中点击“组件”,在“NVCUDA64.dll”后面就可以看到详细的CUDA版本(我这里是12.4.131)
1.2 CUDA下载
-
登录Nvidia开发者官网,下载cudatoolkit,官网一般为最新版,点击图示位置可以下载旧版本CUDA。
-
根据自己的版本选择合适的cudatoolkit,我这里选择的是cuda==12.4.1。
-
进入后根据自己的系统选择对应的cudatoolkit,选择好后点击Download。
1.3 安装CUDA
-
下载好的安装包如图,双击,同意管理员权限,进入安装界面。
-
进入安装界面后,一直下一步,能同意就同意,直到安装选项的时候,选择精简。
-
如果途中出现了Microsoft Visual Studio进程冲突,可以关掉VS后,重启电脑即可。
-
安装完成后,需要确认是否安装成功,首先,再次进入CMD,输入指令
nvcc --version
-
如果显示出了CUDA版本,再确认下一步。
-
右键“此电脑”,点击“属性”,再进入“高级系统设置”。
-
点击环境变量,在环境变量中查看是否存在CUDA_PATH和CUDA_PATH_VXX_X(XX_X代表你所安装的CUDA版本),存在证明安装成功。
2. cuDNN安装
2.1 cuDNN下载
开始下载前,需要注册一个Nvidia账号并登录,注册教程这里不再赘述
-
进入如下网址,并点击“Download cuDNN Library”:
https://developer.nvidia.com/cudnn
-
由于我这里不是最新版本的CUDA,所以选择下载之前的旧版本。
-
根据结尾的for CUDA xx.x,选择合适的版本。
-
点击后,展开如下页面,根据自己的系统选择合适的版本。选择后自动开始下载。
-
下载后如图所示是一个压缩包。
2.2 cuDNN安装
- 打开下载好的压缩包,复制压缩包内如下几个文件夹。
- 找到cuda的安装位置,如果你之前安装选择默认位置的话,应该跟我一样在C:\Program Files\NVIDIA GPU Computing Toolkit下。
- 继续打开对应版本的文件夹,打开后如图,将刚才复制的三个文件夹粘贴在这里即可。
- 验证是否安装成功,在上图位置,双击进入extras\demo_suite,在该文件夹处右键,选择“在终端中打开”。
- 在新打开的终端中,输入 .\bandwidthTest.exe,回车后显示Result=PASS,证明安装成功。
3. 安装Pytorch
3.1 使用pip安装Pytorch
-
打开如下网址,点击Get Started:
https://pytorch.org/index.html
-
按照自己的配置与Cuda版本(向下兼容),网页会自动生成安装指令,在自己的对应环境中运行即可(确保终端已安装最新版pip)
-
复制到自己的终端,运行即可。
-
如果下载慢或者搜不到,可以更换pip源或者conda(使用anaconda的情况下)源,换源的教程可以参照其他大佬。
3.2 验证Pytorch
- 直接写个小程序一起验证下环境是否可用:
import torch
if torch.cuda.is_available():
print("CUDA is available")
device = torch.device("cuda:0")
else:
print("CUDA is not available")
device = torch.device("cpu")
- 如果控制台显示CUDA is available,恭喜环境配置成功。
- 配置成功后,在模型推理(如YOLO V8)时,就可以设置推理容器为GPU,具体可以尝试如下代码(须安装ultralytics,直接pip install ultralytics即可):
import torch
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
model('YOUR_DIR', show=True, device = 0) # 需要将YOUR_DIR换为你自己数据集(MP4或者图片等)的位置