移动测试开发 Pytorch GPU 训练环境搭建
之前一直使用 tensorflow 训练模型,第一次训练 pytorch 模型的时候,发现速度很慢,仔细观察,发现 GPU 内存占用为 0,基本没有使用 GPU.
AssertionError: CUDA unavailable, invalid device 0 requested
cuda不可用报错,现实没有有效的驱动可使用
测试 cuda 是否配置正确
编写代码:
import torch
print(torch.cuda.is_available())
检测电脑的 GPU 能否被 PyTorch 调用, 如果结果返回 True , 则说明,cuda 可用,运行后输出的是 False,说明 cuda 有问题。
重新安装 cuda
检测本地 GPU cuda 版本
nvidia-smi
当前我的机器上 CUDA Version: 10.0 版本的,所以我们直接选择对应的 CUDA 版本下载。
pip3 install torch1.9.0+cu101 torchvision0.10.0+cu101 torchaudio=0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
当前 torchvision0.10.0+cu101 版本必须是匹配的。如果版本不匹配,如上面的命令,则会出现错误
我们打开网站 https://download.pytorch.org/whl/torch_stable.html,查看所有版本
cu101 表示需要的cuda版本
torchvision-0.2.1 可以看到我们可以适应的版本
其它字段信息,包含适配 python 版本,cpu 版本,或者是系统支持
我们使用命令行直接安装:
conda install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
如果安装还是报错的话
ERROR: Could not find a version that satisfies the requirement torch1.8.1+cu101...
我们可以换下面这种安装方式
conda install -i https://pypi.tuna.tsinghua.edu.cn/simple torch===1.8.1 torchvision===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
终于安装成功,满心欢心重新测试:
还是不对,这一次报错说我们的 CUDA 驱动版本太低了,而是 Pytorch 的版本和 CUDA 不匹配。
查看我们的 CUDA Version 为 10.0.130
在看下我们当前环境的 torch 版本
发现版本是 torch == 1.8.1 , torchvision == 0.9.1
打开 https://pytorch.org/get-started/previous-versions/ 查看 CUDA 和 pytorch 的一个对应关系
发现 1.8.0 版本对应的 CUDA 最低为 10.2 版本,确实比我们的要训练环境要高,重新调整我们本地虚拟环境版本,我们稍微降低一下版本,Torch 官网的版本只提供了 CUDA 9.2 和 CUDA 10.1 的版本,我的 cuda 是 10.0 的。所以这里版本不对应导致 Torch.cuda 加速无法运行。
这里支持 10.0 版本为 1.2.0 版本,感觉有点低,升级一下 CUDA 版本到 10.1 版本
重新检测后,结果显示成功