[python]如何正确的安装pytorch?(详细)

news/2024/9/19 23:24:19/ 标签: python, 开发语言, pytorch, 人工智能, 深度学习

一、我们为什么需要安装pytorch?

        pytorch作为目前最主流的开源机器学习库之一,凭借庞大的社区支持和易于开发的特性,收获了一大波开发者与项目分支。像我们熟知的“GLM”,“YOLO”,"GPT-Sovits",“Stable Diffusion”......这些开源项目中都有pytorch的身影。不管是现在的大语言模型或者是一些专用模型都已经离不开pytorch。所以,我们现在就来学习如何安装这个强大的机器学习库吧!

二、检查自己的环境

        下面讲的可能需要你具有一定的计算机硬件知识,你需要通过观察自己硬件环境来决定安装哪种版本的pytorch。在下面我会讲几种情况,大家根据自己的情况来判断自己应该在下一步如何操作。

1.拥有NVIDIA的GPU(俗称N卡)

        当然这样的情况是比较好的,因为你大概率能使用你的GPU来运行pytorch。当然也不是绝对的,有的较早期的显卡也不支持CUDA。CUDA是NVIDIA的GPU独有的,拥有CUDA pytorch就能把计算任务分给GPU,从而加速深度学习和模型训练。

2.拥有AMD的GPU(俗称A卡)

        这种情况也就相对复杂了,因为没有CUDA所以很有可能你无法安装pytorch的GPU版本。退而求其次你只能选择CPU版本。当然这也不是绝对的,在AMD的较新系列显卡中,我们可以使用AMD的ROCM技术来模拟CUDA,从而也能实现对深度学习的加速,而且pytorch有具有一个专门的ROCM版本。当然,我这里硬件不允许所以不演示这种方案了。大家可以自行在网络上进行搜索。之前也提到了,这种方案只支持比较新的AMD的GPU如果你的GPU是6000系以下的基本都没有适配,只能考虑安装CPU版本的。

3.只拥有CPU

        如果你是自己组建的多核计算服务器,或者是硬件实在不允许,那你就只能考虑pytorch的CPU版本。这个版本的pytorch只能进行最基本的深度学习,没有加速功能,这也就意味着运行模型的速度会慢许多。甚至在一些场景中只能进行推理不能进行训练。但是这也是安装最简单,并且最容易适配的方案。

通过检查自己的环境相信你已经知道了自己适合哪个版本的pytorch了,下面就让我们根据自己的环境来安装pytorch吧。

三、安装pytorch

        我们在这里主要讲NVIDIA的和CPU的安装方案,AMD显卡的方案因为我的硬件限制所以没办法进行演示。下面我们分情况讨论,请大家自己前往对应的情况进行操作。

1.拥有NVIDIA的GPU

        如果你有NVIDIA的GPU那么大概率可以使用这个GPU进行加速,之前我们也提到了。我们使用N卡进行加速使用的是它的CUDA,所以我们要做的第一件事当然就是安装CUDA的驱动。

虽然我们直接安装pytorch也能调用显卡进行加速,但是始终不是处于一个非常完美的状态,所以,也是为了让pytorch充分调用我们的硬件资源,我们还是先安装CUDA的驱动。不同型号的显卡它们对应的CUDA驱动也不同,我们首先就需要去查看自己的显卡所对应的CUDA版本是多少。我们这里使用“CMD”命令行进行查看。使用“WIN+R”输入CMD回车。打开如下窗口:

我的窗口我自己改了一下背景,你自己的应该就是黑的,不过不影响,都是一样的,只要确定自己打开的是“CMD命令行”就行,可以观察窗口的左上角来看自己启动的是哪一种命令行。

我们在“CMD命令行”中输入“nvidia-smi.exe”

回车以后应该就能出现下图的输出了。如果你没有得到像下图一样的输出。或者被提示命令找不到那你就要考虑一下显卡驱动是否被正常安装或者重新审查自己的硬件环境了。这一步的输出是下一步的前提,所以,使用N卡的小伙伴一定要过了这一步。

得到这些输出以后,我们可以看到打印出了许多东西。大致就有我们显卡的型号,驱动的版本和CUDA的版本。下面我们着重来看CUDA版本。

如上图,被我框出的地方可以看出这里就是我们CUDA的版本信息了。当然,这里只是我们CUDA能支持到的最新版本,我们实际安装的时候,不一定要安装这个最新版,CUDA是向下兼容的。也就是说,我这里看到的是12.3版本,其实我也可以安装11.7,10.5这些版本。我们这里只是安装CUDA的驱动。pytorch中的CUDA版本对于这个是向下兼容的。举个例子,假如你安装了12.3的CUDA驱动,那么你安装的pytorch对应到的CUDA版本可以是12.3以下的。

好了我们现在已经确定了自己的CUDA能支持到什么版本。我们可以直接去NVIDIA的官网下载对应的CUDA驱动了。官网地址:CUDA Toolkit Archive | NVIDIA Developer

进到官网以后我们可以看到如下界面:

这里有非常多的CUDA驱动版本,我们要找到我们需要的版本,刚才通过查看,我能安装的CUDA最新的驱动为12.3,所以我们这里用12.3作为演示,大家可以根据自己的CUDA版本进行选择。

当我们选择好想要的CUDA驱动以后就可以直接点击CUDA的版本号进入下载界面。

下载界面如图所示,第一步要我们选择系统,我这里是windows,所以选择第二个。选择以后它就会弹出下一个选项。

第二个选项是系统架构,只有一个选项所以我们点击这个选项。

第三个是系统的版本,我这里是windows11,所以这里我选择的11,大家根据自己的情况进行选择。

第四个选择是问是要本地安装还是网络安装,我们这里推荐使用本地安装。网络安装可能会因为网络不稳定而中断。

我们可以点击下面的下载按钮进行下载。

点击了下载以后浏览器过一会儿应该就能弹出下载了。

我们把这个安装包下载到一个我们能找到的地方。

我们这里点击这个exe文件进行安装。

双击以后,弹出一个路径选项,这是一个临时解压路径,所以就算在C盘也没关系。它后面会自己删除。

直接点击OK以后就会进入一个解压阶段。

解压结束以后,就弹出如下检测兼容性的界面。

如果这里兼容性检查不通过就要考虑是不是下载的CUDA驱动版本大于显卡支持CUDA的最大版本。

这里的协议我们选择“同意并继续”。

这里我们选择自定义并且点击“下一步”。

来到这个选择界面,这里我们只勾选“CUDA”即可。

如果你的电脑中没有安装“Visual Studio”,那就点击CUDA旁边的加号把“Visual Studio Integration”的勾去掉。

这里也选择好以后我们继续点击“下一步”。

这里我们选择安装的位置,大家选择安装在非C盘的路径即可。我们继续点击下一步。

 随后就开始安装了,我们等待安装完成。

这里它已经提醒我们安装完成了。

我们可以简单的来验证一下我们的安装。

我们打开“cmd命令”窗口,输入“nvcc -V”后回车,效果如下图:

这里输出了我们的CUDA版本信息说明我们的CUDA驱动已经安装成功了。如果你输入“nvcc -V”以后出现nvcc fatal   : No input files specified; use option --help for more information,很有可能是你的V没有大写引起的。

我们下一步就可以开始安装pytorch了,这里安装pytorch的前提是我们具有python的环境或者具有python的虚拟环境,如果你还不会安装python或者不会安装虚拟环境的话可以参考我下面这两篇文章:

安装python:[python]我们应该如何正确的安装和卸载python?(详细)-CSDN博客

安装python虚拟环境:[python]我们应该如何安装Miniconda虚拟环境?(详细)_python miniconda-CSDN博客

当然这两个有一个就行,如果你直接在系统中安装了python下面的pytorch就可以直接在系统中安装。可以直接打开“powershell”进行操作。如果你是安装的虚拟环境,你可以在虚拟环境中安装pytorch,并且我也非常推荐这种方式,这种方式很大程度上会解决版本冲突问题。下面我会使用虚拟环境进行演示。如果你想直接在系统中安装pytorch,你就可以直接跳过虚拟环境创建的那一步。好的,我们现在开始在虚拟环境中安装pytorch

首先,我们在创建虚拟环境。使用如下命令:

conda create -n pytorch python=3.8

这里我们创建了一个名为pytorch的虚拟环境,并且指定了python版本为python3.8.

虚拟环境创建完成以后,我们输入下面的命令进入虚拟环境:

conda activate pytorch

在成功进入虚拟环境以后,我们就可以开始安装pytorch了。我们可以去pytorch的官网,可以在浏览器中直接搜索“pytorch”。

可以看出途中框出的网站就是pytorch的官方网站了。如果实在搜索不到pytorch的官方网站,或者害怕找错了,也可以直接点击下面的链接进入。pytorch官方网站:PyTorch

我们进入网站,就可以看到如下界面,可能会随着pytorch的更新网站也更新,不过道理都是一样的。我们在这个网站中往下滑,找到如下图这个地方,这就是我们安装pytorch的关键了。

我们下面要重点解读这个框中的每个项是什么意思,应该怎么选。

首先是框中的“PyTorch Build”项,这是pytorch的稳定版和预览版,“Stable (2.4.0)”表示的是稳定版,“Preview (Nightly)”表示的是预览版,我们这里尽量去选择稳定版,或者根据自己的项目进行选择。

“Your OS”选项表示我们的操作系统,每种操作系统的安装命令不一样,我这里是windows所以理所当然的选择windows。

“Package”选项就是安装源,我们可以选择conda源,pip源等,这里推荐使用pip源。

“Language”选项表示我们使用的是什么编程语言,我们在这里选择python,毕竟之前做的准备都是python的。

“Compute Platform”选项就表示我们要安装哪个CUDA版本的pytorch了。这个可以根据自己项目来定,我这里选择一个CUDA11.8的pytorch。 

“Run this Command”项就是我们的安装命令,这个安装链接是根据我们上面的选项生成的,后面会使用这个命令进行安装。

如果这里没有你想安装的pytorch版本,那就可以点击下图框中的链接。

点击以后往下滑就能找到以前版本的pytorch的安装命令了。大家根据自己需求对安装命令进行选择。

我们选择好安装命令以后我们将其复制。将命令粘贴到启动了虚拟环境的命令框。

我们回车进行安装。

我们等待所有模块下载安装完成。如果你在安装的时候下载非常慢,就可以考虑使用whl包进行安装,可以在下载时获取到下载的链接,你可以复制这些链接将whl包下载到电脑上再安装。具体安装whl包可以参考:[python]如何安装whl包并解决依赖关系(详细)-CSDN博客

在安装成功以后使用“pip list”,查看已经安装的包,我们可以看到这里已经有三个跟pytorch有关的了,并且后面跟了CUDA的版本。下面我们来验证一下安装是否成功。

我们依次在虚拟环境的命令行中依次输入以下命令:

python
import torch
torch.cuda.is_available()

这里注意,是依次输入,输入一次回车一次。当返回“True”时就表示pytorch已经安装成功了。

至此,我们的pytorchGPU版本已经安装完成。

2.只有CPU

        下面这种情况同样是针对只有CPU的情况,在这种情况下,我们只能安装CPU版的pytorch。在安装之前,我们同样要确定我们拥有python的环境或者拥有python的虚拟环境,具体的安装步骤可以查看下面的文章:

python安装:[python]我们应该如何正确的安装和卸载python?(详细)-CSDN博客

虚拟环境安装:[python]我们应该如何安装Miniconda虚拟环境?(详细)_python miniconda-CSDN博客

如果确定了拥有python环境或者虚拟环境以后我们就可以开始安装pytorch了。我们这里主要演示虚拟环境安装。如果在系统中安装的python那么就直接在一个“powershell”窗口中进行。

首先,我们在创建虚拟环境。使用如下命令:

conda create -n pytorch python=3.8

这里我们创建了一个名为pytorch的虚拟环境,并且指定了python版本为python3.8.

虚拟环境创建完成以后,我们输入下面的命令进入虚拟环境:

conda activate pytorch

关于进入官网的办法和相关选项都在前面介绍过了,唯一的不同就是我们在这里要选择CPU

点击CPU后我们将其复制到虚拟环境的命令框中。

回车以后等待安装完成。在安装完成以后我们使用“pip list” 查看安装的包。

这里我们可以看到torch已经在列表中了,下面我们来验证一下。我们依次输入下面的命令:

python
import torch
print(torch.__version__)

注意这里的命令都是依次输入,输入一次回车一次,运行后就能出现pytorch的版本+CPU

如果在这个过程中出现了错误首先检查自己的输入是否正确,如果依然报错可能就需要考虑是否是安装失败了。检查后重新安装。

出现图中的效果就表示安装已经成功了。

四、结语

        在这一小节中我学习了pytorch的安装教程,这也算是我们迈出了认识机器学习的第一步。我希望在此努力的大家都能坚持到最后。


http://www.ppmy.cn/news/1527787.html

相关文章

【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧

文章目录 Python NumPy学习指南前言第六部分:NumPy在科学计算中的应用1. 数值积分使用梯形规则进行数值积分使用Simpson规则进行数值积分 2. 求解微分方程通过Euler方法求解一阶常微分方程使用scipy.integrate.solve_ivp求解常微分方程 3. 随机过程模拟模拟布朗运动…

深入浅出Docker

1. Docker引擎 Docker引擎是用来运行和管理容器的核心软件。通常人们会简单的将其指代为Docker或Docker平台。 基于开放容器计划(OCI)相关的标准要求,Docker引擎采用了模块化的设计原则,其组件是可替换的。 Docker引擎由如下主…

stm32单片机个人学习笔记4(GPIO输入)

前言 本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。 STM32入门教程-2023版 细…

828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0

《828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0》 在 2024 年 9 月 14 日这个特别的日子,我着手利用华为 Flexus 云服务器搭建轻量级、高性能、前后端分离的电商系统萤火商城 2.0,开启了一段充满挑战与惊喜的旅程。 华为 Flexus 云服…

【C++】—— 内存管理

【C】—— 内存管理 1 C/C 的内存划分 1.1 C/C 的内存分布1.2 C/C 的内存分布练习 2 C语言 中动态内存管理方式:malloc/calloc/realloc/free3 C 内存管理方式3.1 new / delete 操作内置类型3.2 new 和 delete 操作自定义类型3.2.1 new 和 delete 操作自定义类型基础…

C++速通LeetCode简单第10题-翻转二叉树

递归法: class Solution { public:TreeNode* invertTree(TreeNode* root) {if (root nullptr) {return nullptr;}TreeNode* left invertTree(root->left);TreeNode* right invertTree(root->right);root->left right;root->right left;return roo…

中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速

鸿蒙生态大势所趋,各种应用适配加速 近日,华为纯血鸿蒙系统(HarmonyOS NEXT)再度引发市场高度关注。据媒体消息,鸿蒙NEXT Beta版将在9月24日对Mate 60系列、X5系列、Pura70系列等16款旗舰机型进行推送,这已…

【C++】关键字、命名空间、输入和输出、缺省参数的深入了解

目录 一、C关键字二、命名空间2.1 为什么存在命名空间?2.2 命名空间定义2.3 命名空间使用 三、C输入&输出四、缺省函数4.1 缺省函数分类 总结 一、C关键字 C一共有63个关键字 其中红色圈出来的32个关键字同时也是C语言的 二、命名空间 2.1 为什么存在命名空间…

python 实现euclidean distance欧式距离算法

euclidean distance欧式距离算法介绍 欧式距离(Euclidean Distance)是度量两点之间距离的一种常用方法,特别是在多维空间中。它基于欧几里得几何中的距离定义,即两点间的直线距离。 在二维空间中,假设有两个点 P 1 …

MySQl篇(SQL - 基本介绍)(持续更新迭代)

目录 一、简介 二、SQL方言(分页查询为例) 1. 简介 2. SQL方言大比拼 2.1. Oracle 2.1.1. 使用ROWNUM实现分页查询 2.1.2. 使用ROW_NUMBER()实现分页查询 2.2. MySQL 2.3. PostgreSQL 三、语法规范 四、注释 五、MySQL脚本中的标点符号 一、简…

Scikit-learn 学习笔记

安装: 在Scikit-learn中,数据通常表示为NumPy数组或Pandas DataFrame。特征数据(X)通常是一个二维数组,其中每一行代表一个样本,每一列代表一个特征。目标数据(y)通常是一个一维数组…

解决Gson将长数字( json字符串)转换为科学记数法格式

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…

ZYNQ TCP 协议的远程更新 QSPI Flash

1 SDK直接少些Flash过程 ****** Xilinx Program Flash ****** Program Flash v2019.1 (64-bit)**** SW Build 2552052 on Fri May 24 14:49:42 MDT 2019** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.WARNING: Failed to connect to hw_server at TCP:127.0.0.1:3…

k8s环境搭建(续)

查看节点信息并做快照 kubectl get nodes 将components.yml文件上传到master主机 创建nginx,会在添加一个新的pod kubectl run nginx --imagesnginx:latest 查看nginx的pod信息 [rootk8s-master ~]# kubectl get po -Aowide|grep nginx 出现错误,查…

docker-01 创建一个自己的镜像并运行容器

docker-01 创建一个自己的镜像并运行容器 前言 我们都知道使用Docker的镜像可以快速创建和部署应用,大大的节约了部署的时间。并且Docker 的镜像提供了除内核外完整的运行时环境,确保代码的环境一致性,从而不会在出现这段代码在我机器上没问…

基于Spring Boot的学生社区故障维修预约系统的设计与实现(任务书)

本科毕业论文(设计)任务书 学院:数学与数据科学学院 学生姓名 专业班级 信息与计算科学202班 学号 校内指导教师姓名 职称/职务 副教授 签名 校外指导教师姓名 职称/职务 项目经理 签名 论文题目 基于Spring Boot的学生社区故障维修预约系统的设计与实现 起始日期 2023-9…

IP协议及相关特性

IP协议负责地址管理和路由选择。它的组成为: 接下来我们将对其中较重要的部分进行介绍。 4位版本:这里的四位版本只有两个取值 分别为IPv4和IPv6,这两个额分别为不同的IP协议,但是现在主流的还是IPv4但是近年来IPv6在中国的普及率…

【秋招笔试-试读版】9.14京东秋招(已改编)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花…

编写Python脚本在证书过期10天内将域名信息发送到钉钉

1、配置文件config.json {"dingtalk-webhook": "https://oapi.dingtalk.com/robot/send?access_tokenXXXXXXXXXXXXXX","secret": "XXXXXXXXXXXXXXXXXXXXXX","domains": ["www.advd.tel","dre.dfefer.cn:84…

【Go】Go语言中的数组基本语法与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…