最近在配置pytorch机器学习的环境,遇到过一些问题,现在记录一下供参考。网上虽然也有很多教程,但是有些过时了,有些不全面。这一篇尽可能全面的说明一下配置步骤,重点是软件之间的版本匹配问题。
目录
我的电脑和配置:
Windows 11
RTX 2050
需要安装的软件(组件):
Visual Studio 2019
CUDA
cuDNN
pytorch
在配置环境之前,需要先知道这些软件是有版本要求的,而且相互依赖匹配。最好先把需要的版本安装包下载正确,以免做无用功浪费时间。
需要说明的一点是,如果你的机器学习不需要用到GPU加速,那么只需要安装CPU版的pytorch即可,其它的都不需要安装,否则是必要的。
1 Visual Studio 2019安装
目前安装VS2019既可以满足要求,太新和太旧的版本都不太好。在微软官网按要求下载安装工具:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
这个下载时可能需要登录微软账号,按要求即可,下载community2019版本。如果网络有问题或不想登录的,这里提供一个我下载的安装包,阿里云盘的分享:阿里云盘分享
刚刚下载的是一个安装工具,将它安装打开之后,选择“Python开发”和“使用C++的桌面开发”这两个模块安装即可,其余的可以不用装。
上面两个模块安装完成之后,如果出现下面这个界面的,要点击“重启”,如果没有出现的,最好自己把电脑重启一下。
2 CUDA和cuDNN安装
显卡驱动和CUDA的版本对应关系:在NVIDIA控制面板-帮助-系统信息-组件中,即可看到自己显卡对应的CUDA版本。比如我这里显示的需要安装11.7版本的。
接着在官网下载适合自己显卡的的CUDA版本安装包,并且按步骤安装好即可:https://developer.nvidia.com/cuda-toolkit-archive
CUDA和显卡驱动的版本对应关系:如图下图所示,详细的可参考英伟达官网的信息:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
查看自己显卡驱动版本:打开CMD--输入 nvidia-smi 查看:
你的GPU驱动版本号,需要大于CUDA要求的驱动版本号。如果自己的显卡驱动不符合要求,则需要更新驱动。在英伟达官网下载自己显卡的最新驱动并安装,以符合CUDA的版本要求:https://www.nvidia.cn/geforce/drivers/
cuDNN和CUDA的版本对应关系:
查看官网,找到合适的cuDNN版本并下载https://developer.nvidia.com/rdp/cudnn-archive
cuDNN的安装和添加环境变量可以参考这两篇教程,他们写的比较详细,就不再赘述了:
3 Pytorch安装
Pytorch是现在最流行的机器学习框架之一,目前的流行程度已经超过了TensorFlow。
Pytorch的安装同样需要和版本对应,安装的官方网站:https://pytorch.org/get-started/locally/
因为我电脑的CUDA适配版本是11.7,所以在Pytorch官方网站上也要选择CUDA11.7. 同样的,你选择的版本也要符合你自己适配的CUDA版本。
上图所示,官网已经将安装命令生成了,此时复制绿色框中的命令。然后打开Anaconda Prompt,在你自己的Python虚拟环境中复制,回车开始安装:
然后在你的虚拟环境下,依次输入以下命令:
python
import torch
torch.__version__
可以看到Pytorch已安装完好:
4 环境测试
至此,所需要的软件和环境已经搭建好了,接下来测试一下环境是否可用。
新建一个脚本,配置我们已安装了Pytorch的环境的解释器,键入以下代码:
import torch
print('CUDA版本:',torch.version.cuda)
print('Pytorch版本:',torch.__version__)
print('显卡是否可用:','可用' if(torch.cuda.is_available()) else '不可用')
print('显卡数量:',torch.cuda.device_count())
print('是否支持BF16数字格式:','支持' if (torch.cuda.is_bf16_supported()) else '不支持')
print('当前显卡型号:',torch.cuda.get_device_name())
print('当前显卡的CUDA算力:',torch.cuda.get_device_capability())
print('当前显卡的总显存:',torch.cuda.get_device_properties(0).total_memory/1024/1024/1024,'GB')
print('是否支持TensorCore:','支持' if (torch.cuda.get_device_properties(0).major >= 7) else '不支持')
print('当前显卡的显存使用率:',torch.cuda.memory_allocated(0)/torch.cuda.get_device_properties(0).total_memory*100,'%')
如果可以输出以下信息,说明我们的环境已安装,可以使用Pytorch进行机器学习的GPU加速了!
参考教程【深度学习】001 检测CUDA、cuDNN、Pytorch是否可用
-----本文完-----