conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]

  • 一、问题描述
  • 二、网上解决方案罗列【此节为反面方案罗列!!!】
  • 三、发现的根本原因[独家]
    • 3.1 pytorch文件命名格式
    • 3.2 问题的根本原因:找不到对应GPU版本的pytorch文件,所以conda就用CPU替代了=v=
    • 3.3 解决方案

一、问题描述

按照pytorch官网安装pytorch GPU版本,结果却是CPU版本。

我的倔脾气,嘿!反反复复安装、卸载个五、六、七、 遍。才意识到再操作一遍也是一样的结果。

二、网上解决方案罗列【此节为反面方案罗列!!!】

还是上网搜索:

结果发现,遇到和我同样问题的还不少。

我发现大家的解决办法不相同,大致如下:

解决方案一:卸载pytorch-mutex

解决方案二:卸载cpuonly

解决方案三:卸载numpy,哦呵…

如果继续往下看,你或许明白上面的方案的确能解决问题。但是,这种神秘性以及某种被约束的感觉真的不是太好。上面这些方案,其实就是瞎猫碰上死耗子!!! 他们能起作用本身就是一个BUG。

程序员的诡异操作,写的代码莫名其妙运行起来了。。

想知道这个问题产生的根本原因以及根本解决方案,那么请继续跟着我一起往下看吧…

三、发现的根本原因[独家]

3.1 pytorch文件命名格式

首先介绍一个pytorch的文件名的普通命名格式。

一个在python=3.7conda 环境下,cudatoolkit=10.1版本的pytorch=1.7.0的文件名为:pytorch-1.7.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2

一个在python=3.7conda 环境下,CPU版本的pytorch=1.7.0的文件名为pytorch-1.7.0-py3.7_cpu_0.tar.bz2

从上可以看出,不同的python版本,GPU/CPU,若是GPU版本,则cudatoolkit的版本,再加上pytorch的版本,唯一指定一个pytorch安装文件。

明白这个,我们再继续往下。

3.2 问题的根本原因:找不到对应GPU版本的pytorch文件,所以conda就用CPU替代了=v=

先说一下问题产生的根本原因:指定某一版本cudatoolkit下的指定版本的pytorch不在源(国内conda镜像源或因外源)中,导致某一版本cudatoolkit下的指定版本的pytorch无法被conda install找到,然而不凑巧的是,源中却有指定版本的pytorch,不过它是CPU版本。那么,conda install这个小机灵鬼自作主张的替你安装了这个版本。结果就是,你觉得明明安装的是GPU版pytorch,可是像是有种神秘力量让你最终得到的总是cpu版pytorch。

例子1

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

-c pytorch是指在官方源里找库。此时,如果conda官方源里没有(或者由于网络问题无法访问官方源)cudatoolkit=11.3对应的GPU版pytorch,而此时conda install又找到一个CPU版的pytorch,那么结果是,它给你安装了这个cpu版的pytorch

例子2

conda create -n pytorch-GPU python=3.7 # 创建一个python3.7的conda环境
conda activate pytorch-GPU # 进入该conda环境
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 换conda源
conda install cudatoolkit=10.0 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安装 cuda
conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安装cudnn
conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安装pytorch

我想通过国内的镜像源来安装cudatoolkit=10.0版本的pytorch==1.7.0,结果我发现安装的还是cpu版本。我在https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/上发现,原来镜像源里根本没这个文件。于是,conda install这个小机灵鬼又自作主张的给我装了cpu版本的文件pytorch-1.7.0-py3.7_cpu_0.tar.bz2,它给我装的文件python版本相同,pytorch版本相同,唯一不同的就是CPU/GPU。

此处需要指出,若采用官方命令conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch,安装的是pytorch==1.4.0版本,此版本在from torch.cuda.amp import GradScaler, autocast时会报错from torch.cuda.amp import GradScaler, autocast。网上说是1.4版本太低,换1.7就好了。

3.3 解决方案

我们安装前先要确定源中是否真的有我们组合出来的版本,[python|cudatoolkit|pytorch]这三个版本不同的组合,真的不一定有。

例如,我发现根本没有满足python=3.7cudatoolkit=10.0以及pytorch=1.7.0的版本,但是在镜像源中,我发现有python=3.7cudatoolkit=10.1以及pytorch=1.7.0的版本,于是用以下命令安装:

conda create -n pytorch-GPU python=3.7 # 创建一个python3.7的conda环境
conda activate pytorch-GPU # 进入该conda环境
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 换conda源
conda install cudatoolkit=10.1 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安装 cuda
conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安装cudnn
conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安装pytorch

仔细看下图的倒数第5行,我们发现,conda install找到对应的gpu版本,此时,它便不好去自作主张了,乖乖地给我安装gpu版本吧。


以上
by windSeS
2022-7-21

conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]相关推荐

  1. conda安装GPU版pytorch,却是cpu版本的原因

    原因 用官网的命令conda安装GPU版本pytorch,发现是安装的cpu版本.查看了下库的信息,发现有一个pytorch-mutex库,这个就是原因所在,将其卸载后,再重新安装GPU版本就解决了. ...

  2. 基于Anaconda安装GPU版PyTorch深度学习开发环境

    基于Anaconda安装GPU版PyTorch深度学习开发环境 1 安装Anaconda 2 安装GPU计算驱动 2.1 检查是否有合适的GPU 2.2 下载CUDA和cuDNN 2.3 安装CUDA ...

  3. conda安装gpu版tensorflow和局部cuda插件,不用配置全局cuda了

    conda安装gpu版tensorflow和局部cuda插件,不用配置全局cuda了 把后面的命令改为你要安装的版本号 conda install -c conda-forge tensorflow- ...

  4. Win11系统/RTX30系列显卡——安装gpu版pytorch

    1.电脑显卡:RTX 3060 2.预先安装 cuda11.6(支持win11的最低版本) 参考教程:Windows安装pytorch-gpu_息吹的博客-CSDN博客_window安装pytorch ...

  5. cu116安装gpu版pytorch

    安装前在Anaconda Prompt中输入pip debug --verbose https://download.pytorch.org/whl/cu116 Anaconda Prompt移到下载 ...

  6. 全网最详细之如何安装gpu版的pytorch

    安装gpu版pytorch 一.准备: 1.需要查看nvidia驱动是否安装 安装驱动可参考:https://blog.csdn.net/qq_41428418/article/details/119 ...

  7. 【conda安装pytorch总是下载cpu版本的问题】

    conda安装pytorch总是下载cpu版本的问题 首先,表述问题:我在使用pytorchu官方网站安装torch1.9.0的GPU包, 链接: link 确保自己的安装的代码为 // cuda 1 ...

  8. gpu版pytorch安装

    pytorch pytorch官网:https://pytorch.org/get-started/locally/ 目前gpu版pytorch安装不需要自己安装cuda,而且注意windows版仅支 ...

  9. 用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 (zz)

    用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 我想写一系列深度学习的简单实战教程,用mxnet做实现平台的实例代码简单讲解深度学习常用的一些技术方向和实战样例.这 ...

最新文章

  1. 一次心血来潮的C程序编译 makefile
  2. Oracle与OpenJDK之间的区别
  3. 单层神经网络线性回归_单层神经网络| 使用Python的线性代数
  4. 未来客:人人都可以构建软件或系统
  5. oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。...
  6. 关于范数与正则化详解(转)
  7. 图标字体制作,mock数据
  8. Python: 爬虫与一个好美国股票数据网站---英为财情,
  9. java62e62e,【报Bug】云端打包错误 apk
  10. 微生物组-扩增子16S分析第10期(报名直播课免费参加线下2020.12)
  11. 北京交通大学万怀宇:时空交通数据预测方法及应用
  12. 校招进大厂的Tips
  13. (精简理解)DPDK的无锁环形队列Ring
  14. 科学计数法转为普通计数法
  15. 【python】backgroundremover 去除背景
  16. 200行Perl 语言实现 VCD 转ATE测试pattern ---pattern的解析
  17. 转载:汽车ABS、EBD、ESP、TCS、HDC、HHC、这些英文都有什么用处?
  18. 普洱茶扫盲篇-辨别优质普洱
  19. 各类网红级产品荟聚,硅步机器人专业ROS交流会,近距离产品体验,快来报名吧
  20. 20.深度解密二十:通过搜索引擎进行淘宝客营销玩法

热门文章

  1. 这些新规今起实施:侵犯民警执法权威或被追刑责
  2. 游戏设计艺术学习笔记之——第一章 太初之始,有设计师
  3. 小米手机 5 开启【开发者选项】
  4. teamviewer 使用数量到达上限_Teamviewer使用新问题之:同一账号在不同设备上使用已达上限...
  5. 少儿编程培训 python
  6. 钉钉小程序复选框 全选反选 表单获取内容有误处理
  7. c语言18之鸡兔同笼,共有98个头,386只脚,编程求鸡兔各多少只
  8. VIM的初学配置文件
  9. MBA中国网关注:打造最佳团队的5大秘诀
  10. 奥运比赛电视直播一览表