ubuntu20.04 解决Pytorch默认安装CPU版本的问题

ubuntu20.04 解决Pytorch默认安装CPU版本的问题

在这里插入图片描述

在使用Anaconda安装支持CUDA的PyTorch版本时,遇到只能安装CPU版本的PyTorch是一个常见问题。这通常由于Anaconda环境配置、镜像源设置不当或版本匹配问题导致。以下是详尽的解决方案和步骤,以确保能够正确配置和使用镜像源安装正确的PyTorch版本。

问题分析

  1. 镜像源的优先级问题:当存在多个同名包时,Conda会根据配置的镜像源优先级决定下载哪一个版本。如果GPU支持的版本和CPU版本同时存在,没有正确设置优先级,可能导致安装了不支持CUDA的版本。

  2. 版本匹配问题:指定的PyTorch版本和cudatoolkit版本可能在所选的镜像源中无法找到匹配的组合,导致自动回退到只包含CPU支持的版本。

解决方案和步骤

步骤1: 正确设置镜像源
  • 添加PyTorch专用镜像源

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    

    这个源专门为PyTorch及其依赖库提供服务,包括支持不同CUDA版本的PyTorch安装包。

  • 设置显示频道URLs

    conda config --set show_channel_urls yes
    

    这一设置可以帮助您在安装过程中查看包的具体来源,有助于诊断问题。

  • 编辑.condarc文件
    确保~/.condarc文件中PyTorch的链接优先级最高。可以使用文本编辑器直接编辑这个文件,或使用以下命令查看当前配置:

    cat ~/.condarc
    
步骤2: 选择性添加和精简其他镜像源
  • 深度学习源

    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版本。

  • 其他镜像源的选择性添加

    • Conda-forge源:
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
      
      包含大量第三方库,应谨慎添加,以避免潜在的版本冲突。
auto_activate_base: false
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.sustech.edu.cn/anaconda-extra/cloud/nvidia/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- defaults
show_channel_urls: true
步骤3: 安装指定版本的PyTorch和CUDA Toolkit
  • 根据CUDA版本选择对应的PyTorch版本。您可以在PyTorch官网或清华源网站上找到版本兼容表。

  • 执行安装命令:

    conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    
步骤4: 验证安装
  • 检查已安装的PyTorch版本:
    conda list pytorch
    
  • 在Python中验证CUDA支持:
    import torch
    print(torch.cuda.is_available())  # 应返回True
    

通过以上详细步骤,您可以确保从Anaconda的清华源正确安装支持CUDA的PyTorch版本,避免因配置不当而下载到CPU版本。这个过程不仅确保了软件的正确安装,也提高了安装过程的透明度和可控性。

您可以确保从Anaconda的清华源正确安装支持CUDA的PyTorch版本,避免因配置不当而下载到CPU版本。这个过程不仅确保了软件的正确安装,也提高了安装过程的透明度和可控性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】守护进程

一、守护进程的概念 守护进程是一个在后台运行并且不受任何终端控制的进程 二、自己实现守护进程 1.预备知识 (1)/dev/null /dev/null是一个特殊的设备文件,往这个文件里写不进去任何数据,也读不出来任何数据 因此&#xff0…

【数据结构与算法】第12课—数据结构之归并排序

文章目录 1. 归并排序2. 计数排序3. 排序算法复杂度及稳定性分析在这里插入图片描述 1. 归并排序 分治法(Divide and Conquer)是一种重要的算法设计策略,其核心思想是将一个复杂的大问题分解为若干个小规模的子问题,递归地解决这些…

【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing

文章目录 前言1.关于briefing2.本地部署briefing3.使用briefing4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定briefing公网地址 前言 在这个信息爆炸的时代,视频聊天几乎成了我们日常沟通的标配。但你是否曾在视频会议中感到不安,担心自己的私…

RTOS基础-信号量和队列

引言 消息队列用于传输多个数据,但是有时候我们只需要传递状态,这个状态值需要用一个数值表示,使用信号量效率更高、更节省内存 信号:起通知作用 量:还可以用来表示资源的数量 当"量"没有限制时&#x…

pip install tkinter报错

pip install tkinter:ERROR: Could not find a version that satisfies the requirement tkinter 这是因为,安装python的时候没有安装tkinter选项,解决这个问题有下面两种方法 一、重新安装python 但是这个步骤有点麻烦 二、在python-3.1…

Java 实现自定义 LRU 缓存

一、引言 在现代软件系统中,缓存是提高性能的重要手段之一。LRU 缓存作为一种常用的缓存策略,能够根据数据的使用频率自动淘汰最近最少使用的数据,从而保持缓存的高效性。在 Java 中,虽然有一些现成的缓存框架可供使用&#xff0c…

Python的面向对象day7

1、什么是面向对象 面向对象称为OO,他通过将数据和功能封装在一个被称为‘对象’的实体中,来组织和管理代码。面向对象变成(OOP)具有四个特性,封装、继承、多态、抽象 优点:模块化、安全性高、代码重用性…

自动化工具 Gulp

自动化工具 gulp 摘要 概念:gulp用于自动化开发流程。 理解:我们只需要编写任务,然后gulp帮我们执行 核心概念: 任务:通过定义不同的任务来组织你的构建流程。 管道:通过管道方式将文件从一个插件传递…

大华Android面试题及参考答案

请解释 Service 和 IntentService 之间的区别。 Service 是 Android 中的一种组件,用于在后台执行长时间运行的操作,不提供用户界面。它可以通过 startService () 或者 bindService () 方法来启动。当通过 startService () 启动时,服务会一直运行直到自己停止或者被系统回收…

探索 Seata 分布式事务

Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的一款分布式事务解决方案,旨在帮助开发者解决微服务架构下的分布式事务问题。它提供了高效且易于使用的分布式事务管理能力,支持多种事务模式,确保数据的一致性和完整性。 以下是 Seata 的一…

【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题

前言 qt、qml项目经常会涉及访问MySQL数据库、网络服务器,并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据,如果网络不通,卡个几十秒,会让用户觉得非常的不爽,本文从技术调研的角度讲解解决此类问…

探索美赛:从准备到挑战的详细指南

前言 美国大学生数学建模竞赛(MCM/ICM),简称“美赛”,是全球规模最大的数学建模竞赛之一。它鼓励参赛者通过数学建模来解决现实世界中的复杂问题,广受世界各地大学生的欢迎。本文将详细介绍美赛的全过程,从…

selenium 控制内嵌table滚动条的方法

selenium 控制内嵌table滚动条的方法 我们经常会遇到selenium 无法捕获到对应元素的问题,其中有一个原因是由于页面中存在滚动条,而需要操作的元素需要滑动滚动条后才能捕获到。 之前有使用过如下方式: document.getElementById(id).scrollT…

编程之路,从0开始:知识补充篇

Hello大家好,很高兴我们又见面了! 给生活添点passion,开始今天的编程之路! 这一篇我们来补充一下在之前篇目没讲到的知识,并结合一些码友的私信提问和我在编程中遇到的问题,做一些易错点或易混点的讲解。 …

C语言中,让人又爱又恨的字符串编码

引言 在C语言的世界里,字符串编码是一个让人既爱又恨的话题。 所有的打印信息,都是以字符串输出的。但是,大家在编码的时候,经常会遇到一些情况,稍不注意,就会导致显示出乱码,到了客户那里&…

Javaweb—Ajax与jQuery请求

文章目录 十一.Javaweb—Ajax与jQuery请求11.1 异步/同步请求11.2 异步请求案例案例一:案例二: 十一.Javaweb—Ajax与jQuery请求 Ajax: 全称Asynchronous JavaScript And XML,异步的JavaScript和XML。 11.1 异步/同步请求 【往期文章】 同…

单片机中的BootLoader(重要的概念讲解)

文章目录 一、链接地址和执行地址1. 链接地址(Load Address)2. 执行地址(Execution Address)链接地址与执行地址的关系实际工作流程总结二、相对跳转和绝对跳转1. 相对跳转(Relative Jump)2. 绝对跳转(Absolute Jump)3. `BX` 和 `BL` 指令总结三、散列文件1. 散列文件的…

macOS解决U盘装完系统容量变小的问题

发现原来256GB容量的U盘在mac电脑上只显示34GB,想起来之前用该U盘装过系统,最终搜到了以下解决方案,在此记录: (1) 查看盘符列表,找到需要格式化的U盘,假设为disk4 diskutil list(2) 卸载分区disk4 disk…

Linux 系统管理和监控命令---- auditctl命令

文章目录 基本语法常用参数和选项添加规则删除规则查看规则控制审计系统其他选项 使用示例启用审计系统禁用审计系统添加文件监视规则删除文件监视规则添加系统调用规则删除系统调用规则列出当前的审计规则 结合 ausearch 和 aureport查询审计日志生成审计报告 总结 auditctl 是…

知识图谱6:neo4j查询语句

neo4j增删改查 常见查询语句 1、查询所有节点和关系 //查询所有节点和关系 MATCH (n)-[r]->(m) RETURN n, r, m 2、查询某个知识图谱的全部 3、查询 MATCH (n:zhongyao {name: "艾虎"})-[r]->(m) RETURN n, r, m4、统计 // 查询边的个数 MATCH ()-[r]->…