Pytorch的安装

news2024/11/23 7:05:15

Pytorch的安装

  • Pytorch的安装
    • 查看显卡信息
    • CUDA兼容性
    • 安装说明
    • 开始安装
    • 常见异常
    • 安装CUDA

Pytorch的安装

PyTorch的安装绝对是一个不是那么简单的过程,或多或少总是会出现一些奇奇怪怪的问题,这里分享记录一下PyTorch的安装心得。

查看显卡信息

没用显卡的直接跳过,然后通过在cmd命令行中输入nvidia-smi(Linux和Win命令一样)、使用NVIDIA控制面板和使用任务管理器查看机器是否有NVIDIA的独立显卡及其型号

root@master:/code # nvidia-smi
Fri Dec  8 03:09:45 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla V100S-PCI...  Off  | 00000000:8B:00.0 Off |                    0 |
| N/A   35C    P0    27W / 250W |      0MiB / 32510MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

CUDA兼容性

参考:CUDA兼容性

NVIDIA CUDA工具包使开发人员能够为台式计算机、企业和数据中心乃至超大规模企业构建 NVIDIA GPU 加速的计算应用程序。它由 CUDA 编译器工具链组成,其中包括 CUDA 运行时 (cudart) 以及各种 CUDA 库和工具。要构建应用程序,开发人员只需安装 CUDA 工具包和链接所需的必要库。

为了运行 CUDA 应用程序,系统应具有支持 CUDA 的 GPU 和与用于构建应用程序本身的 CUDA 工具包兼容的 NVIDIA 显示驱动程序。如果应用程序依赖于库的动态链接,那么系统也应该具有此类库的正确版本。

CUDA 的组件:
在这里插入图片描述

CUDA软件主要包括三部分:

CUDA Toolkit : 库文件、运行环境 和 开发工具, 主要是面向开发者 CUDA编译环境

CUDA Driver: 用户驱动组建,用于运行 CUDA 程序,可以理解为 CUDA运行环境

Nvidia GPU 驱动 : 显卡核心驱动,就是 硬件驱动

CUDA版本与驱动版本关系如下:

参考:CUDA发布说明

CUDA ToolkitLinux x86_64 Driver VersionWindows x86_64 Driver Version
CUDA 12.3 Update 1>=545.23.08>=546.12
CUDA 12.3 GA>=545.23.06>=545.84
CUDA 12.2 Update 2>=535.104.05>=537.13
CUDA 12.2 Update 1>=535.86.09>=536.67
CUDA 12.2 GA>=535.54.03>=536.25
CUDA 12.1 Update 1>=530.30.02>=531.14
CUDA 12.1 GA>=530.30.02>=531.14
CUDA 12.0 Update 1>=525.85.12>=528.33
CUDA 12.0 GA>=525.60.13>=527.41
CUDA 11.8 GA>=520.61.05>=520.06
CUDA 11.7 Update 1>=515.48.07>=516.31
CUDA 11.7 GA>=515.43.04>=516.01
CUDA 11.6 Update 2>=510.47.03>=511.65
CUDA 11.6 Update 1>=510.47.03>=511.65
CUDA 11.6 GA>=510.39.01>=511.23
CUDA 11.5 Update 2>=495.29.05>=496.13
CUDA 11.5 Update 1>=495.29.05>=496.13
CUDA 11.5 GA>=495.29.05>=496.04
CUDA 11.4 Update 4>=470.82.01>=472.50
CUDA 11.4 Update 3>=470.82.01>=472.50
CUDA 11.4 Update 2>=470.57.02>=471.41
CUDA 11.4 Update 1>=470.57.02>=471.41
CUDA 11.4.0 GA>=470.42.01>=471.11
CUDA 11.3.1 Update 1>=465.19.01>=465.89
CUDA 11.3.0 GA>=465.19.01>=465.89
CUDA 11.2.2 Update 2>=460.32.03>=461.33
CUDA 11.2.1 Update 1>=460.32.03>=461.09
CUDA 11.2.0 GA>=460.27.03>=460.82
CUDA 11.1.1 Update 1>=455.32>=456.81
CUDA 11.1 GA>=455.23>=456.38
CUDA 11.0.3 Update 1>= 450.51.06>= 451.82
CUDA 11.0.2 GA>= 450.51.05>= 451.48
CUDA 11.0.1 RC>= 450.36.06>= 451.22
CUDA 10.2.89>= 440.33>= 441.22
CUDA 10.1 (10.1.105 general release, and updates)>= 418.39>= 418.96
CUDA 10.0.130>= 410.48>= 411.31
CUDA 9.2 (9.2.148 Update 1)>= 396.37>= 398.26
CUDA 9.2 (9.2.88)>= 396.26>= 397.44
CUDA 9.1 (9.1.85)>= 390.46>= 391.29
CUDA 9.0 (9.0.76)>= 384.81>= 385.54
CUDA 8.0 (8.0.61 GA2)>= 375.26>= 376.51
CUDA 8.0 (8.0.44)>= 367.48>= 369.30
CUDA 7.5 (7.5.16)>= 352.31>= 353.66
CUDA 7.0 (7.0.28)>= 346.46>= 347.62

一定要保证PyTorch与cuda toolkit的版本适配,参考:PyTorch版本要求

总结概括:Nvidia GPU驱动必须大于CUDA Toolkit要求的Nvida GPU驱动版本,或者PyTorch版本要求的CUDA版本对应驱动与Nvidia GPU驱动符合匹配要求

安装说明

访问PyTorch官网

可以选择本地开始(Start Locally),云开发(Cloud Partners),以前的Pytorch版本(Previous PyTorch Versions),移动端开发(Mobile),在此处选择本地安装

在这里插入图片描述
Windows下使用PIP方式安装,计算平台使用CPU,安装方式如下:

pip3 install torch torchvision torchaudio

在这里插入图片描述
Windows下使用conda方式安装,计算平台使用cuda,安装方式如下:

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

在这里插入图片描述
更多安装方式参考:https://pytorch.org/get-started/locally/

注意:

Stable代表的是稳定版本,Preview代表的是先行版本

结合电脑是否有显卡,选择CPU版本还是CUDA版本,CUDA版本需要拥有独显且是NVIDIA的GPU

一定要保持PyTorch和cudatoolkit的版本适配

开始安装

在上面使用nvidia-smi命令查看显卡信息,得出驱动程序版本是470.57.02,显卡驱动支持的CUDA版本是11.4,参考上面CUDA版本与GPU驱动程序版之间的关系列表,得出:

 1.若使用当前机器上GPU驱动,不升级,则只能从PyTorch官网查询与当前GPU所使用的CUDA相匹配的PyTorch版本

 2.若想使用较新版本的PyTorch,其使用的CUDA版本以及要求的GPU驱动版本必定较高,此时需要升级机器是的GPU驱动

 3.一定保证PyTorch版本要求使用的CUDA版本对应的驱动与GPU驱动版本相匹配

这里没有PyTorch版本特殊要求,使用最便捷的方式,不对当前GPU驱动进行升级,访问PyTorch版本记录查询匹配的PyTorch版本进行安装。

因为该机器可以支持最高CUDA版本为11.4,且官方版本记录中没有找到CUDA11.4的支持,驱动可以向下兼容,所以小于等于11.4的CUDA版本理论来说都可以安装,这里选择CUDA 11.3

具体安装命令如下:

# CUDA 11.3
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

注意:

根据自身网络情况调整下载地址

# 从官网下载
-c pytorch

# 单独指定一个镜像下载
–c 镜像地址

检验是否安装成功

import torch

if __name__ == '__main__':
    if torch.cuda.is_available():
        print("GPU是否可用:", torch.cuda.is_available())  # 查看GPU是否可用
        print("GPU数量:", torch.cuda.device_count())  # 查看GPU数量
        print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
        print("GPU索引号:", torch.cuda.current_device())  # 查看GPU索引号
        print("GPU名称:", torch.cuda.get_device_name(0))  # 根据索引号得到GPU名称
    else:
        print("GPU不可用")

常见异常

各种相关依赖、库文件安装完毕后,准备启动项目,出现异常:

CUDA initialization: The NVIDIA driver on your system is too old (found version 11040). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternatively, go to: https://pytorch.org to install a PyTorch version that has been compiled with your version of the CUDA driver. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)

原因:

系统上的NVIDIA驱动程序版本过旧,或者说NVIDIA驱动程序和CUDA驱动程序与所安装的PyTorch版本存在兼容性

解决办法:

1.下载并安装新版本的GPU驱动程序:http://www.nvidia.com/Download/index.aspx

2.安装一个与CUDA 驱动程序版本兼容的PyTorch版本:https://pytorch.org

在更新了驱动程序或安装了兼容的 PyTorch 版本后,这个问题应该会得到解决。

安装CUDA

NVIDIA GPU驱动程序已经包含了基本的CUDA支持,但安装额外的CUDA工具包可以提供更多功能和开发工具,能够更好地编写、调试和优化CUDA程序。这取决于具体需求和开发环境。

访问https://developer.nvidia.com/cuda-downloads下载对应版本的CUDA
在这里插入图片描述
选择需要的版本进行下载
在这里插入图片描述
默认情况下是自动添加到环境变量中,变量名:CUDA_PATH 变量值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

验证查看CUDA的版本信息

C:\Users\Admin>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

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

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

相关文章

常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的,这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求,密码不符合要求(格式上的要求) ④ 密码符合要求&#xf…

实用干货:推荐4个超级好用的Vue库,你可能不知道!

大家好,我是大澈! 本文约1200字,整篇阅读大约需要3分钟。 感谢关注微信公众号:“程序员大澈”,然后免费加入问答群,从此让解决问题的你不再孤单! 1. 干货速览 这两天老粉会发现,大…

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 CNN 部分

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 CNN 部分 概述CNN 简介数据预处理查看数据格式加载数据集 图像处理限定图像范围图像转换加载数据 CNN 模型Inception 网络ResNet 残差网络总结参数设置 训练 Train模型初始化数据加载训练超参数训练循环 验证…

idea一些报错

java: 非法字符: \ufeff 使用IDEA修改文件编码 在IDEA右下角,将编码改为GBK,再转为UTF-8,重新启动项目。具体步骤如下: 在IDEA右下角找到UTF-8字样的编码格式设计项,点击选择第一项GBK,然后Convert&#xf…

电脑出现msvcr120_1.dll丢失如何解决,怎么修复

一、msvcr120.dll_1.dll文件的作用: msvcr120.dll_1.dll是一个动态链接库文件,它是Microsoft Visual C Redistributable Package的一部分。该文件包含了许多常用的函数和类,这些函数和类被许多应用程序所共享和使用。因此,当您在…

“ABCD“[(int)qrand() % 4]作用

ABCD[(int)qrand() % 4] 作用 具体来说: qrand() 是一个函数,通常在C中用于生成一个随机整数。% 4 会取 qrand() 生成的随机数除以4的余数。因为4只有四个不同的余数(0, 1, 2, 3),所以这实际上会生成一个0到3之间的随…

力扣40. 组合总和 II(java 回溯法)

Problem: 40. 组合总和 II 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 在使用回溯之前我们首先可以明确该题目也是一种元素存在重复但不可复用的组合类型问题。而此题目可以参考下面一题的大体处理思路: Problem: 90. 子集 II 具体的: 1.首…

自助式可视化开发,ETLCloud的集成之路

自助式可视化开发 自助式可视化开发是指利用可视化工具和平台,使非技术人员能够自主创建、定制和部署数据分析和应用程序的过程。 传统上,数据分析和应用程序开发需要专业的编程和开发技能。但是,自助式可视化开发工具的出现,使…

Unity 通过鼠标控制模拟人物移动和旋转视角

要通过鼠标控制并模拟人物移动和转换视角,将会使用射线检测、鼠标点击和鼠标水平移动,配合物体旋转和移动方法共同实现。 首先搭建个由一个Plane地板和若干cube组成的简单场景: 其次创建一个Capsule作为移动物体,并把摄像头拉到该…

Leetcode—10.正则表达式匹配【困难】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—10.正则表达式匹配 算法思想 参考题解 实现代码 class Solution { public:bool isMatch(string s, string p) {int m s.size(), n p.size();vector<vector<bool>> dp(m 1, vector<bool>(n …

VMware安装ContOS 7 提示“客户机操作系统已禁用 CPU。请关闭或重置虚拟机。”

目录 实验环境报错截图报错原因猜测&#xff08;根据实验现象&#xff09;解决办法如下 实验环境 Vmware Workstation 17.5 CentOS7 镜像版本&#xff1a;2207-02版本 注意&#xff1a;2009版本并无该错误 报错截图 报错原因猜测&#xff08;根据实验现象&#xff09; CentO…

深入理解Java虚拟机---类加载机制

类加载机制 什么是类加载机制类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证 准备解析初始化 类加载器双亲委派模型 什么是类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff…

C++初阶(十五)Stack和Queue

文章目录 一、Stack的模拟实现二、Queue的模拟实现三、容器适配器1、什么是容器适配器2、STL标准库中stack和queue的底层结构3、 deque的简单介绍(了解)1、deque的原理介绍2、deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容器 一、Stack的模拟实现 #include<…

Servlet 的初步学习

前言 咱们最核心的目标是基于tomcat编程, 做出网站来 ~~ 基于tomcat进行网站后端的开发. 网站后端, http服务器,肯定是需要针对http 协议进行一系列操作的. 幸运的是, tomcat,已经把这些http相关的底层操作,封装好了只需要调用tomcat给咱们提供的api即可 Servlet 是什么 Servl…

ReLU(Rectified Linear Unit)和Sigmoid激活函数

ReLU&#xff08;Rectified Linear Unit&#xff09;和Sigmoid都是神经网络中常用的激活函数。 特点&#xff1a; ReLU是一种简单而有效的激活函数。它对于正数部分直接返回输入&#xff0c;对于负数部分返回零。这种非线性转换有助于网络学习更复杂的表示。ReLU在许多深度学习…

1.【Multisim仿真】数电模电学习,仿真软件的初步使用

学习计划路径&#xff1a; >Multisim电路仿真软件熟练掌握 >数字电路基础课程 >逻辑电路设计与应用 >熟练掌握存储器、脉冲波形发生器、D/A和A/D转换器原理 >基本元器件熟练掌握 >晶体管放大电路及负反馈放大电路 >集成运算放大器设计 >电压变电流电路…

Unity_ET框架项目-斗地主_启动运行流程

unity_ET框架项目-斗地主_启动运行流程 项目源码地址&#xff1a; Viagi/LandlordsCore: ET斗地主Demohttps://github.com/Viagi/LandlordsCore下载项目到本地。 启动运行步骤&#xff1a; 下载目录如下&#xff1a; 1. VS&#xff08;我用是2022版VisualStudio&#xff09…

C++共享和保护——(2)生存期

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命如同寓言&#xff0c;其价值不在于…

Leetcode—709.转换成小写字母【简单】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—709.转换成小写字母 实现代码 char* toLowerCase(char* s) {int len strlen(s);for(int i 0; i < len; i) {if(s[i] > A && s[i] < Z) {s[i] tolower(s[i]);}}return s; }运行结果 之后我会持续更…

IO零拷贝

在介绍零拷贝之前我们先看看传统的 Java 网络 IO 编程是怎样的。 下面代码展示了一个典型的 Java 网络程序。 File file new File("index.jsp");RandomAccessFile rdf new RandomAccessFile(file, "rw");byte[] arr new byte[(int) file.length()];rdf…