conda自动安装cpu版本pytorch

问题描述

由于conda自带的源太慢,换成了清华源,结果无论怎么下载都无法使用cuda。检查conda列表发现装的是cpu版本

原因

网上众说纷纭,例如删掉cpu-only包,但都是瞎猫碰上死耗子。
真正的原因是Anaconda的清华源有很多不同的链接:

  1. 有时候遇到同名的包会按照url的优先级默认安装第一个找到的版本。
  2. 你指定的pytorch版本+cudatoolkit无法在清华源上匹配到,于是清华源自动给你安装了它认为最匹配的包(这点特别坑)

解决方法

正确添加conda镜像源

  1. 输入conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/(包含pytorch和cudatoolkit)
    输入conda config --set show_channel_urls yes

  2. Linux上vim ~/.condarc 查看本地conda换源文件,确保1中的链接在首位。如果你只用anaconda安装pytorch,可以删掉default以外的链接。如果你想安装其他的包,酌情添加以下链接(但还要确保1中的链接在首位):
    深度学习源(包含古早 pytorch 和 tensorflow1)
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    以下非必要不添加
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/(包含cpu版本pytorch,古早CUDA版本pytorch,部分cudatoolkit)
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/(复制原仓库)
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ (旧conda-forge)
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/(非linux的源)

  3. 根据cuda版本指定对应的pytorch
    版本对应表见这里
    或者直接访问1的网站查看你指定的pytorch和cuda版本是否在镜像中有安装包

    比如最新的pytorch 12.0版本不支持CUDA 11.1,如果你指定的版本号没有,那就会给你自动下载cpu版本的

  4. 查看pytorch安装版本
    通过conda安装: conda list pytorch

    出现cuda版本号说明安装正确,出现cpu说明安装失败,什么都没有说明你可能是通过pip安装的
    通过pip 安装:进入python里面import torch
    torch.cuda.is_available()输出 True 可用,Flase 不可用
    torch.__version__输出 1.9.1+cpu 表示 cpu 版本,不带cpu表示是gpu版本
    torch.version.cuda输出 10.0等版本号 表示可用;输出 False或者空,表示找不到对应 torch 版本的 CUDA,要么是 pytorch 版本错了,要么是 CUDA版本错了,建议重装 pytorch

posted @ 2022-08-19 21:30  墨莲玦  阅读(1958)  评论(0编辑  收藏  举报