1. 在conda虚拟环境中安装了torch,一般命令都可以正常使用,但是使用cuda的命令torch.cuda.is_available()则输出False。

2. 经过一番查阅资料后,该问题的根本原因是CUDA环境与Torch版本不匹配,因此最直接的解决方式就是使用官方推荐的版本进行适配。

3. 解决思路

  1. 查看本机安装的cuda版本,通过查阅有三个命令

    cat /usr/local/cuda/version.txt
    
    nvidia-smi
    
    nvcc -V
    

    有时候会不幸输出三个不同的版本,这里在虚拟环境下一定以nvcc -V查到的版本为主,作为CUDA版本信息。例如我的版本是10.1

  2. 上官网查看对应的安装命令,然后替换掉现有的版本即可,如下

    1. https://pytorch/
    2. 找到自己CUDA对应的10.1版本
    3. 在虚拟环境中进行安装

    4. Done,开始测试

4. 其他解决思路

  1. 有些人可能只是cudatoolkit版本对不上,如果运气好,只针对cudatoolkit进行版本匹配即可完成,而且安装速度还很快
  2. 安装命令,记得添加清华源,否则龟速。。。cudatoolkit=9.0表示你需要对应上的版本
conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/free/linux-64/

5. 总结

提供了两种解决torch.cuda.is_available()结果为false的问题,第一种方法是一种万金油方法比较推荐,但是安装速度比较感人,第二种方法是精准修复,但是需要自己查好对应的版本。

更多推荐

安装torch后,torch.cuda.is_available()结果为false的问题