#工作记录

一、总述

在深度学习领域,PyTorch 凭借其灵活性和强大的功能,成为了众多开发者和研究者的首选框架。而 CUDA GPU 支持能够显著加速 PyTorch 的计算过程,大幅提升训练和推理效率。然而,安装带有 CUDA GPU 支持的 PyTorch 常常会遇到各种问题,如版本不兼容、安装失败等。

经过反复实践和总结,要想 100% 成功安装带有 CUDA GPU 支持的 PyTorch,强烈建议仅采用 PyTorch 官方网站生成的( 或 查找到的 旧版安装命令)进行安装

因为官方命令能够确保 torchtorchvision 和 torchaudio 三个包的版本兼容性,避免因版本冲突导致安装失败或 CUDA GPU 支持无法启用的情况。

下面将详细介绍具体的安装方案。

 二、先决条件

2.1 硬件要求

  • 计算机需配备 NVIDIA GPU,且该 GPU 支持 CUDA。你可以前往 NVIDIA 官方网站 查看具体的 GPU 支持列表。

2.2 软件要求

  • NVIDIA 驱动:安装与你的 GPU 型号和 CUDA 版本兼容的 NVIDIA 驱动。你可以通过在命令行输入 nvidia-smi 查看当前驱动版本和 GPU 信息。
  • CUDA Toolkit:安装适合你系统的 CUDA Toolkit 版本。可从 NVIDIA CUDA 下载页面 获取。安装完成后,使用 nvcc --version 命令验证安装是否成功。
  • cuDNN:从 NVIDIA cuDNN 下载页面 下载与你 CUDA 版本匹配的 cuDNN 库,并按照官方文档进行安装。

2.3 网络要求

确保你的网络连接稳定,能够流畅访问 PyTorch 官方网站和相关下载源。

三、100% 成功方案实操

3.1 访问 PyTorch 官方网站

打开浏览器,在地址栏输入 PyTorch 官方安装页面,进入该页面后,我们将看到一个用于生成安装命令的配置界面。

 

3.2 确定安装需求

3.2.1 项目需求判断
  • 情况一:requirements.txt 未罗列 torch,但项目需要 torch 加速
    若 requirements.txt 文件中没有列出 torch,但项目实际需要 torch 进行 GPU 加速,此时我们需要根据系统的 CUDA 12.8 版本号来选择安装 torch 的版本。
  • 如果我们的 CUDA 12.8 版本支持且我们希望尝试最新特性,可以选择安装最新的 Preview (Nightly) 版;若追求稳定性,建议安装最新的 Stable 版本。

  • 情况二:罗列了 torch 版本,但未罗列关联的 torchvision 和 torchaudio 包
    当 requirements.txt 文件中列出了 torch 的具体版本,却没有列出关联的 torchvision 和 torchaudio 这两个包时,仅安装 torch 是无法实现完整的 CUDA GPU 加速支持的。
  •  我们需要手动修改 requirements.txt 文件的内容,从 PyTorch 官方网站查找出与 requirements.txt 文件中指定的 torch 版本相匹配的 torchvision 和 torchaudio 版本,并添加到 requirements.txt 中。
  • 具体查找方法为:在 PyTorch 官方网站的 Previous PyTorch Versions 页面,找到对应 torch 版本且适配 CUDA 12.8 的安装命令,从中获取 torchvision 和 torchaudio 的版本信息。

  • 情况三:列出了 torch,但未指定版本号,且未列出 torchvision 和 torchaudio 包
    若 requirements.txt 文件列出了 torch,但没有指定其版本号,同时也没有列出 torchvision 和 torchaudio 这两个包,同样需要我们修改 requirements.txt 文件。​​​​​​​
  • 手动添加上 torchvision 和 torchaudio 这两个包,并根据项目需求和系统 CUDA 版本,从 PyTorch 官方网站获取合适的版本信息添加到文件中。

  • 情况四:torchtorchvision 和 torchaudio 三个包都列出,但未指定版本号
    当 requirements.txt 文件中列出了 torchtorchvision 和 torchaudio 三个包,但都没有指定版本号时,默认会安装最新的 PyTorch 版本。
  • 然而,由于没有明确版本号,在安装 requirements.txt 文件中的其他包时,与其相关的依赖有可能会被卸载重装或变更,从而导致版本不兼容问题。
  • 为避免这种情况,最好我们找到 PyTorch 官网适配 CUDA 的最新稳定版的安装命令,提前进行安装或者在其他包安装完成后进行重装。
  • 以下是相关命令示例:
  • 安装命令
  •  使用 conda
conda install pytorch torchvision torchaudio -c pytorch -c nvidia
  • 使用 pip
​
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

    • 卸载命令
    • 使用 conda
    conda remove pytorch torchvision torchaudio
    • 使用 pip
    pip uninstall torch torchvision torchaudio

    • 清除缓存命令
      • 使用 pip
    pip cache purge
    • 使用 conda
    conda clean --all
    • 安装命令:从 PyTorch 官方网站获取适合我们系统和 CUDA 12.8 版本的安装命令,例如使用 pip 安装 CUDA 12.8 版本的 PyTorch:
    • 稳定版
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
    • 预览版
    pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

     

    • 情况五:torchtorchvision 和 torchaudio 三个包都列出且指定了版本号,但版本号不兼容
      当 requirements.txt 文件中 torchtorchvision 和 torchaudio 三个包都已列出并且指定了版本号,但这些版本号之间不兼容时,无法实现完整的 CUDA GPU 支持。此时,我们需要访问 PyTorch 官方网站的 Previous PyTorch Versions(以前的 PyTorch 版本)页面。在该页面中,查找与 requirements.txt 文件中 torch 版本一致且适配 CUDA的安装命令。
    • 根据查找到的命令,对 requirements.txt 文件中的相关包版本信息进行修正,以确保版本兼容性。

    • 情况六:torchtorchvision 和 torchaudio 三个包,只罗列了其中的两个
      当 requirements.txt 文件中只罗列了 torchtorchvision 和 torchaudio 三个包中的其中两个时,无法保证实现完整的 CUDA GPU 支持。这种情况下,我们需要访问 PyTorch 官方网站的安装页面(Start Locally | PyTorch)或以前的 PyTorch 版本页面(Previous PyTorch Versions | PyTorch)。
    • 根据已罗列的包及其版本信息(若有指定版本),以及系统的 CUDA 12.8 版本等条件,查找合适的 PyTorch 安装命令。
    • 然后根据该命令,对 requirements.txt 文件进行补充和修正,添加缺失的包及其对应的版本信息,以确保三个包都能正确安装且版本兼容。

    • 情况七:其他因篇幅有限未举例的情形
    • 当出现其他安装失败的情形时,请优先排查相关组件,然后用PyTorch 官方网站上生成或找到的旧版安装命令重试,可切换不同的CUDA版本命令逐一重试后验证安装。

    3.2.2 配置安装选项
    • PyTorch 版本
      • 若 requirements.txt 文件指定了 torch 版本号,在官方安装页面的 “PyTorch Build” 下拉菜单中,通过滚动查找或手动输入的方式选择对应的版本。
      • 若为新项目,我们选择 “Stable”(稳定版)。
    • 操作系统:根据我们的计算机操作系统,在 “Your OS” 下拉菜单中选择相应选项,如 Windows、Linux 或 macOS。
    • 包管理器:根据我们之前创建虚拟环境所使用的工具,在 “Package” 下拉菜单中选择合适的包管理器。如果我们使用 conda 创建了虚拟环境,选择 conda;若使用 venv 或不打算使用 conda,选择 pip
    • CUDA 版本:我们选择 “CUDA 12.8”。

    3.3 获取安装命令

    完成上述配置后,页面下方会自动生成相应的安装命令。该命令包含了安装 torchtorchvision 和 torchaudio 所需的所有信息,并且确保了这三个包的版本兼容性,以支持 CUDA 12.8 GPU 加速。

    3.4 执行安装命令

    3.4.1 激活虚拟环境

    如果我们创建了虚拟环境,需要先激活它:

    • 使用 conda 创建的虚拟环境:在命令行输入 conda activate <虚拟环境名称>,例如 conda activate pytorch_env
    • 使用 venv 创建的虚拟环境
      • 在 Linux/Mac 系统中,输入 source <虚拟环境路径>/bin/activate,如 source pytorch_env/bin/activate
      • 在 Windows 系统中,输入 <虚拟环境路径>\Scripts\activate,如 pytorch_env\Scripts\activate
    3.4.2 执行安装命令

    将之前从 PyTorch 官方网站获取的安装命令复制到命令行中,并按下回车键执行。安装过程可能需要一些时间,具体取决于我们的网络速度和系统性能。

    3.5 验证安装

    安装完成后,需要我们验证 PyTorch 是否成功安装并支持 CUDA 12.8 GPU。

    • 打开命令行,使用 Python 3.13 解释器,输入 python3.13 进入 Python 解释器。
    • 在 Python 解释器中输入以下代码:
    import torch  # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print("设备:", device)  # 打印当前使用的设备
    print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
    print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
    print("支持的 CUDA 版本:", torch.version.cuda)
    print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
    x = torch.rand(5, 3)
    y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
    x = x.to(device)
    y = y.to(device)# 对张量进行逐元素相加
    z = x + y# 打印结果
    print("张量 z 的值:")
    print(z)  # 输出张量 z 的内容

     

    代码输出解释

    • print("PyTorch 版本:", torch.__version__):输出当前安装的 PyTorch 版本号,帮助我们确认所使用的 PyTorch 版本。此处应输出:PyTorch 版本
    • device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 和 print("设备:", device):检查 CUDA 是否可用。若可用,设备设置为第一个 GPU(cuda:0);若不可用,设置为 CPU。输出当前使用的设备,让我们知道计算将在哪个设备上进行。此处应输出:cuda:0。
    • print("CUDA 可用:", torch.cuda.is_available()):明确输出 CUDA 是否可用,判断系统是否具备 GPU 加速的条件。此处应输出:CUDA 可用
    • print("cuDNN 已启用:", torch.backends.cudnn.enabled):输出 cuDNN 是否已经启用。cuDNN 是 NVIDIA 提供的深度神经网络库,启用后可加速深度学习计算。此处应输出:cuDNN 已启用
    • print("支持的 CUDA 版本:", torch.version.cuda):输出当前 PyTorch 支持的 CUDA 版本,确保 CUDA 版本与 PyTorch 兼容。此处应输出:支持的 CUDA 版本:XX.XX
    • print("cuDNN 版本:", torch.backends.cudnn.version()):输出当前使用的 cuDNN 版本,确认 cuDNN 版本是否符合要求。此处应输出:cuDNN 版本:XXXXX
    • x = torch.rand(5, 3) 和 y = torch.rand(5, 3):创建两个形状为 (5, 3) 的随机张量,这些张量默认在 CPU 上创建。
    • x = x.to(device) 和 y = y.to(device):将创建的随机张量移动到之前确定的设备(CPU 或 GPU)上,保证后续计算在指定设备进行。此处应被移动到设备'cuda:0'
    • z = x + y:对两个张量进行逐元素相加操作,得到结果张量 z
    • print("张量 z 的值:") 和 print(z):输出结果张量 z 的内容,确认张量计算是否正常执行。此处应输出:[*****,device='cuda:0']

    通过以上输出,我们可以全面了解 PyTorch 的安装情况、CUDA 和 cuDNN 的配置情况,以及张量计算是否能在指定设备上正常进行。

    验证PyTorch深度学习环境Torch和CUDA还有cuDNN是否正确配置的命令_验证pytorch和cuda的命令-CSDN博客

    四、PyTorch 的安装方法

    4.1 pip 安装(从 PyTorch 官网命令)

    按照前面步骤从 PyTorch 官方网站获取适合我们系统和 CUDA 12.8 版本的 pip 安装命令,然后在激活的虚拟环境中执行该命令即可完成安装。

    这种方法简单方便,且能保证安装的是官方推荐的版本。

    4.2 conda 安装(从 PyTorch 官网命令)

    同样从 PyTorch 官方网站获取 conda 安装命令,在激活的 conda 虚拟环境中执行该命令。

    conda 可以更好地管理包的依赖关系,适合对环境管理有较高要求的我们。

    4.3 下载包后从本地安装(从镜像源 不推荐)

    我们可以从镜像源下载 torchtorchvision 和 torchaudio 的安装包,然后通过本地安装的方式进行安装。

    但这种方法不推荐,因为镜像源的包可能不是最新版本,且版本兼容性难以保证,容易导致安装失败或 CUDA 12.8 GPU 支持出现问题。

    五、总结

    通过严格按照上述步骤操作,特别是使用 PyTorch 官方网站生成的安装命令,我们能够确保 torchtorchvision 和 torchaudio 三个包的版本兼容性,从而 100% 成功安装带有 CUDA 12.8 GPU 支持的 PyTorch。在安装过程中,要仔细检查每个步骤,根据不同的项目需求准确判断并配置安装选项,确保满足先决条件。同时,优先选择 pip 或 conda 从官方网站获取命令进行安装,避免使用不推荐的本地安装方式。希望这份攻略能够帮助我们顺利搭建起高效的深度学习开发环境。

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

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

    相关文章

    图数据库榜单网站

    图数据库榜单 https://db-engines.com/en/ranking/graphdbms点击跳转

    Android Jetpack Compose 面试题大全(2025最新整理)

    基础概念 什么是 Jetpack Compose&#xff1f;它与传统 Android UI 开发有何不同&#xff1f; Compose 是 Android 的现代声明式 UI 工具包&#xff0c;使用 Kotlin 编写不同于传统的基于 View 和 XML 的 imperative 方式&#xff0c;Compose 使用声明式范式主要区别&#xff1…

    添加了addResourceHandlers 但没用

    B站黑马的视频 public class WebMvcConfig extends WebMvcConfigurationSupport { /** * 设置静态资源映射 * param registry */ Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始进…

    STM32实现simpleFOC控制无刷电机

    一、FOC基础知识学习 使用simpleFOC控制无刷电机前&#xff0c;需要大概了解一下相关知识&#xff0c;包括力矩控制、速度控制、位置控制的原理和它们之间的联系。 推荐学习资料&#xff1a; 教你写一个比SimpleFOC更好的电机库_哔哩哔哩_bilibili 《灯哥手把手教你写FOC算…

    【数据结构】快慢指针

    一、快慢指针的原理 定义&#xff1a; 快指针&#xff1a;每次移动两步 慢指针&#xff1a;每次移动一步 终止条件&#xff1a; 当快指针到达链表末尾时停止 事件复杂度&#xff1a; 始终为O(n),仅需依次遍历 空间复杂度&#xff1a; …

    毕业论文 | 基于STM32的自动烟雾报警系统设计

    基于STM32的烟雾报警系统 一、系统设计原理1. **系统架构**2. **工作原理**二、核心公式与算法1. **MQ-2传感器浓度计算**2. **温度传感器数据处理**3. **校准与滤波**三、关键代码实现1. **ADC初始化与数据读取(以MQ-2为例)**2. **报警逻辑与阈值设置**3. **EEPROM存储阈值*…

    Android Gradle插件开发

    文章目录 1. Gradle插件是什么2. 为什么需要插件3. 编写插件位置4. 编写插件5. 自定义插件扩展5.1 订阅扩展对象5.2 把扩展添加给Plugin并使用5.3 配置参数5.4 嵌套扩展5.4.1 定义扩展5.4.2 获取扩展属性5.4.3 使用5.4.4 执行5.4.5 输出 6. 编写在单独项目里6.1 新建Module6.2 …

    PPIO X OWL:一键开启任务自动化的高效革命

    2024年&#xff0c;仅凭一PPIO X OWL&#xff1a;一键开启任务自动化的高效革命篇技术论文&#xff0c;OWL的Github仓库便在24小时斩获了15k Star&#xff0c;成为2024年增速最快的多智能体协作框架&#xff0c;重新定义了任务自动化的效率边界。Camel AI团队开源全栈方案&…

    分布式事务,事务失效,TC事务协调者

    1. 概述 本方案书旨在解决分布式系统中事务一致性问题&#xff0c;重点阐述全局事务标识&#xff08;XID&#xff09;的传递与存储机制、事务协调者&#xff08;TC&#xff09;的设计与部署&#xff0c;以及分布式事务失效场景的应对策略。基于业界成熟框架&#xff08;如Seat…

    2025年“深圳杯”数学建模挑战赛D题-法医物证多人身份鉴定问题

    法医物证多人身份鉴定问题 小驴数模 犯罪现场法医物证鉴定是关系到国家安全、公共安全、人民生命财产安全和社会稳定的重大问题。目前法医物证鉴定依赖DNA分析技术不断提升。DNA检验的核心是STR&#xff08;Short Tandem Repeat&#xff0c;短串联重复序列&#xff09;分析技术…

    Mysql查询异常【Truncated incorrect INTEGER value】

    文章目录 异常原因分析1、数据类型不一致2、数据长度超长3、数据格式要正确 处理方案模拟案例创建表数据查询 异常 在执行MySQL的语句时&#xff0c;在控制台报错如下所示。 Data truncation: Truncated incorrect INTEGER value 原因分析 1、数据类型不一致 必须要保证数据…

    WPF性能优化举例

    WPF性能优化集锦 一、UI渲染性能优化 1. 虚拟化技术 ​​ListView/GridView虚拟化​​: <ListView VirtualizingStackPanel.IsVirtualizing="True"VirtualizingStackPanel.VirtualizationMode="Recycling"ScrollViewer.IsDeferredScrollingEnabled=…

    C# 面向对象实例演示

    C# 面向对象编程实例演示 一、基础概念回顾 面向对象编程(OOP)的四大基本特性&#xff1a; ​​封装​​ - 将数据和操作数据的方法绑定在一起​​继承​​ - 创建新类时重用现有类的属性和方法​​多态​​ - 同一操作作用于不同对象产生不同结果​​抽象​​ - 简化复杂系…

    大连理工大学选修课——机器学习笔记(3):KNN原理及应用

    KNN原理及应用 机器学习方法的分类 基于概率统计的方法 K-近邻&#xff08;KNN&#xff09;贝叶斯模型最小均值距离最大熵模型条件随机场&#xff08;CRF&#xff09;隐马尔可夫模型&#xff08;HMM&#xff09; 基于判别式的方法 决策树&#xff08;DT&#xff09;感知机…

    蒋新松:中国机器人之父

    名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 蒋新松:中国机器人之父 一、生平简介 1. 早年经历与求学道路 蒋新松出生于1931年8月3日,江苏省江阴澄北镇一个靠近长江的小镇。他的名字来源于杜…

    表征(Representations)、嵌入(Embeddings)及潜空间(Latent space)

    文章目录 1. 表征 (Representations)2. 嵌入 (Embeddings)3. 潜空间 (Latent Space)4. 关系总结5. 学习思考 1. 表征 (Representations) 定义: 表征是指数据的一种编码或描述形式。在机器学习和深度学习中&#xff0c;它特指模型在处理数据时&#xff0c;将原始输入数据转换成…

    【STM32实物】基于STM32的RFID多卡识别语音播报系统设计

    演示视频: 基于STM32的RFID多卡识别语音播报系统设计 前言:本项目可实现多个电子标签IC卡RFID识别,刷卡识别后进行中文语音播报反馈,同时进行控制对应的灯光开关。以此也可扩展开发更多功能。 本项目所需主要硬件包括:STM32F103C8T6最小系统板、RFID-RC522模块、五个IC电…

    全面了解CSS语法 ! ! !

    CSS&#xff08;层叠样式表&#xff09;是网页设计的灵魂之一&#xff0c;它赋予了网页活力与美感。无论是为一个简单的个人博客增添色彩&#xff0c;还是为复杂的企业网站设计布局&#xff0c;CSS都是不可或缺的工具。那么&#xff0c;CSS语法到底是什么样的呢&#xff1f;它背…

    青少年抑郁症患者亚群结构和功能连接耦合的重构

    目录 1 研究背景及目的 2 研究方法 2.1 数据来源与参与者 2.1.1 MDD患者&#xff1a; 2.1.2 健康对照组&#xff1a; 2.2 神经影像分析流程 2.2.1 图像采集与预处理&#xff1a; 2.2.2 网络构建&#xff1a; 2.2.3 区域结构-功能耦合&#xff08;SC-FC耦合&#xff09…

    【QT】编写第一个 QT 程序 对象树 Qt 编程事项 内存泄露问题

    目录 1. 编写第一个 QT 程序 1.1 使用 标签 实现 1.2 纯代码形式实现 1.3 使用 按钮 实现 1.3.1 图形化界面实现 1.3.2 纯代码形式实现 1.4 使用 编辑框 实现 1.4.1 图形化界面实现 1.4.2 纯代码形式实现 1.4.3 内存泄露 2. 认识对象模型&#xff08;对象树&…