首先查看pytorch是否可用cuda完整流程应该是先查看是否在当前环境下的python
In [1]: import sys
In [2]: sys.executable
Out[2]: '/home/xt/anaconda3/envs/xia/bin/python'
接着查看cuda是否安装
torch.cuda.is_available()
//True
只是检测CUDA是否安装正确并能被Pytorch检测到。
接着验证是否能正常使用,要想看Pytorch能不能调用cuda加速,还需要一下:
a=torch.Tensor([1,2])
a=a.cuda()
a
果不其然出错了
RuntimeError: CUDA error: no kernel image is available for execution on the device
这是由于显卡计算能力太低导致的,或者是pytorch版本太高了的原因。
从pytorch 1.3开始 不再支持GPU的算力在3.5及其以下的显卡。
如果你要使用torch 1.7,GPU算力至少要达到5.2。
查看pytoch版本
torch.__version__
查看计算能力
torch.cuda.get_device_capability()
所以提供第1种思路:将pytorch换到1.2版本以下,但是:
但是版本太低会遇到很多问题,比如:有些包需要高版本的torch支持,比如:torch geometric需要至少1.4版本。另外,torch版本过低,python版本过高,难保不会出问题。
寻找低版本的pytorch:https://pytorch.org/get-started/previous-versions/。
直接贴出pytorch1.1的下载命令
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch
或者第2种思路:换个计算机,因为显卡计算能力太弱了。
或者第3种思路就是:需要在Windows上重新编译Pytorch 源码,得到适合自己显卡的torch。在编译时,系统会自动把GPU算力下限设为当前机器显卡的算力,比如GT 730M 1G 显卡算力为3.5。参考https://blog.csdn.net/qq_43051923/article/details/108393510。
首先是cudatoolkit版本与driver要对应。查看driver版本可以用nvidia-smi查询,具体参考对比
驱动是向下兼容的,其决定了可安装的CUDA和CUDAToolkit的最高版本。简而言之驱动高一点好,啥烦恼都没有了。对于cuda的更多介绍参考cuda、cudatoolkit区别
这里是cuda与pytorch的关系,官网链接见pytorch
顺便附上tensorflow的链接TensorFlow
PyTorch从来没有为Python2.7版本的PyTorch和TorchVision做过Windows构建。可以使用conda search来实现:
$ conda search 'pytorch[channel=pytorch,subdir=win-64,version=1.1]'
Loading channels: done
# Name Version Build Channel
pytorch 1.1.0 py3.5_cuda100_cudnn7_1 pytorch
pytorch 1.1.0 py3.5_cuda90_cudnn7_1 pytorch
pytorch 1.1.0 py3.6_cuda100_cudnn7_1 pytorch
pytorch 1.1.0 py3.6_cuda90_cudnn7_1 pytorch
pytorch 1.1.0 py3.7_cuda100_cudnn7_1 pytorch
pytorch 1.1.0 py3.7_cuda90_cudnn7_1 pytorch
至少您必须使用Python3.5,但是如果您要使用Python3并且需要那些特定的PyTorch版本,您最好跳到Python3.7。
conda create -n pytorch_1_1 -c pytorch python=3.7 pytorch=1.1 torchvision=0.3