前言
如果要使用GPU进行机器学习算法的训练的话,首先必须在硬件方面进行支持,即需要支持GPU训练的显卡,并正确安装驱动即安装CUDA、CUDNN;其次就是需要安装与驱动对应的torch GPU版本,如果安装错误的torch版本就无法正确训练机器学习模型。
总体步骤:检查显卡——显卡驱动CUDA适配版本——下载Anaconda、Pycharm——下载CUDA——
安装Anaconda和Pycharm软件
如果已经安装好,可直接跳过。
Anaconda的安装可以直接在其官网链接https://www.anaconda.com/products/distribution上下载,但由于Anaconda的官网在国外,因此其下载速度相对来说会很慢。因此一般推荐使用国内的镜像来下载,比如可以使用清华的镜像源https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,可选择合适版本进行下载,这里选择 Anaconda2022.05-Windowsx86_ 64.exe 版本。
可使用终端命令查验自己的Anaconda版本:
下载安装CUDA
cuda: Compute Unified Device Architecture,是一种由NVIDIA推出的通用并行计算架构, 该架构使GPU能够解决复杂的计算问题。
cudnn: 是NVIDIA 推出的用于深度神经网络的GPU加速库,他强调性能,易用性和低内存开销。
cuda和cudnn的关系:
查看个人电脑所支持的CUDA最高版本
方式一:可直接通过终端命令查验:使用终端命令输入 nvidia-smi,可看到个人电脑的CUDA Version
方式二:通过Nvidia控制面板查看:鼠标右键打开Nvidia控制面板或者正在搜索框搜索Nvidia控制面板。
打开面板后,如下:
点击系统信息,可查看自己电脑的GPU版本以及可支持的CUDA最高版本:
前往CUDA网址下载相应的CUDA版本
首先在该链接https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html查看自己电脑可下载的对应的CUDA版本,如图所示:
其次,下载对应的CUDA,根据该链接https://developer.nvidia.com/cuda-toolkit-archive,这里选择的版本不能高于你的显卡驱动里面那个版本号。
然后,双击运行下载好的CUDA的exe文件,安装时不需要更改路径,一路安装即可。安装结束之后,打开 Anaconda prompt 命令提示符,输入命令:nvcc -V,查看 CUDA 是否安装成功。安装成功即可如下所示:
下载GPU版本的torch和torchvision
这里选择的是下载安装包,再在anaconda里下载whl文件。
首先,查看自己的python版本,还是在 Anaconda prompt 命令,输入 python即可查看自己的Python 版本,可以看到我的版本是基于64位的python3.7.13。
其次,不使用命令行下载 pytorch 的下载链接为https://download.pytorch.org/whl/torch_stable.html。里面的文件是cpu开头的是 CPU 版本,cu开头的才是我们要下载的GPU版本。这里可参考 torch 和 torchvision 的对应图,以免下错对应版本,这里我选择的是红色圈内的,根据自己需求下载。
在下载链接里找到的是下载的1.10.0 版本的 torch 和 0.11.1 版本的 torchvision,我的 python版本是3.7,注意后面对应的 win 和 linux,注意这些链接的含义:比如说此链接 cu113/torchvision-0.11.1%2Bcu113-cp37-cp37m-win_amd64.whl 的含义是cuda11.3版本的torchvision 0.11.1,python3.7 win下64位系统。因此下载的时候一定要注意,和自己python的版本对应。
下载torch和torchvision后放在同一目录下,如:
然后在 Anaconda prompt 里 cd 到下载好 torch 和 torchvision 的目录下,输入:pip install “文件名”,torch 和 torchvision 安装方法一样。
安装完毕后,可通过Anaconda prompt输入命令pip list检查是否安装成功。
安装完成后使用下面命令查看torch安装结果。在 Anaconda prompt 里进入到python后 import导入 torch 和 torchvision库,然后使用命令
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.get_device_name(0)
'NVIDIA GeForce RTX 1660 Ti'