序
因为我的电脑是在18年买的,比较旧(GTX1050),安装的Python版本又很新(3.8.8),接下来面临的主要问题就是版本兼容问题。对于安装方法,网上总结的很全了,这里总结一下重要的安装要点,也是新手容易困惑的地方。
误区1:CUDA安装版本上限
查找网上CUDA安装方法,很多文章都会通过“NAVIDA控制面板→帮助→系统信息→组件”查找到CUDA的版本,并且认定这是和系统兼容的版本(即:安装的版本上限)。我认为这是错误的。
我认为这是错误的原因:我的显卡是18年出的GTX1050,按照上述方法,我开始查到的CUDA版本号是9.1。后来通过试验发现:即使我安装了19年出的CUDA10.2,也是兼容的。因此我认为:按照上述方法给出的CUDA版本号并不是安装上限,而是你曾经安装过的CUDA版本号或者说你显卡推出年份的CUDA版本号。
如果安装高于这个的CUDA版本,是没有问题的。以我自己为例,至少GTX1050是可以安装10.2的。
我为什么特意强调了这一误区呢?这一误区导致我开始认为要么安装Python老版本,要么换一个新显卡,否则无法调用GPU环境了(悲)。因为我的Python版本很新,导致对Pytorch和CUDA的安装版本要求也比较新,老的CUDA无法和Pytorch、Python同时兼容。如果能够认识到这个误区,就可以根据自己需求下载这三个软件了,不用再担心“显卡过旧和CUDA不兼容”的问题。
方法1:最快查询CUDA、Pytorch、Python兼容版本的方法,少走很多弯路
即使电脑成功安装了CUDA和Pytorch,如果版本不兼容,也无法调用GPU环境。我自己就在这步花费了很多时间。
有文章通过Pytorch官网的pip命令安装Pytorch库。对于更快的方法,我直接上结论:通过pytorch下载界面的文件名来看(下载界面的链接https://download.pytorch.org/whl/torch_stable.html)
如上图,whl文件的文件名直接告诉了我们兼容的CUDA、pytorch和python版本号,选择合适的文件下载即可。
这样还有一个好处:如果通过官网的pip安装命令下载pytorch,可能需要梯子,且下载速度很慢,进而导致pytorch无法正常安装。如果通过浏览器先下载好whl文件,再安装,速度就很快。对于whl文件的安装方法,参考https://jingyan.baidu.com/article/08b6a5917ed44214a909225c.html
方法2:“NIVIDA安装程序失败”处理方法
(1)在安装CUDA之前,点开控制面板,卸载所有NIVIDA公司的产品,保留框里的两个。然后用360或者电脑管家清理卸载残留,清理注册表。
(2) 进入C:\Program Files,删除NIVIDA Corporation文件夹。如果提示文件正在运行,先用任务管理器中止NIVDA组件运行再删除,或者利用电脑管家的文件粉碎机强行删除。
(3)安装时,不要勾选“Visual Studio Integration”组件
(4)CUDA安装后,要进行环境变量配置和CUDNN的文件配置,推荐一篇博客:win10+CUDA安装及环境配置_Henry的博客-CSDN博客_cuda配置环境变量
方法3:其它问题的补充
(1)调用GPU环境的代码
import torch
tensor = torch.rand(3,4)
print(f"Shape of tensor: {tensor.shape}")
print(f"Datatype of tensor: {tensor.dtype}")
print(f"Device tensor is stored on: {tensor.device}")
if torch.cuda.is_available():
tensor = tensor.to('cuda')
print(f"Device tensor is stored on: {tensor.device}")
print(torch.cuda.is_available())#如果结果为True,说明GPU环境可以调用
(2)GPU环境下,初次运行深度学习代码,可能出现虚拟内存不足的问题,需要为磁盘开辟虚拟内存
(3)"CUDA out of memory" 解决方法:调小图片尺寸、降低Batch_size、令num_workers=0、令pinmemory=0、或者买个显卡(玩笑