前言
Pytorch作为深度学习入门的一个框架,十分适合初学者入门,但是很多新手总会在安装相关环境的时候遇到各种难题,无法下载,下载速度慢,版本不兼容等情况,往往费时费力最后都不一定能下好,在这里我总结了下载安装的详细步骤,以及可能会遇到的问题,来供大家参考。
值得注意的是,这种方法与网上大多数教程不太一样,是基于Pycharm自带的虚拟环境,但最后的结果是一样的,而且更加省时省力,且无需科学上网。
主要有以下步骤:
- 安装Pycharm(该步骤可参考网上专门教程)
- 新建一个venv虚拟环境
- pip命令详解及修改加速
- GPU版本Pytorch本体包下载
- cuda及cuDNN下载
- 检验是否安装成功
事不宜迟,让我们开始吧。
Pycharm自带的venv虚拟环境
什么是虚拟环境
在新建第一个虚拟环境之前,我希望通过一个简单的比喻来介绍一下到底什么是虚拟环境。
如果把一个Python项目比作一项工作的话,那么虚拟环境就可以看作工作用的房间,每个房间都有自带的相同的基础家具(Python自带库),而你安装的第三方库,就可以看作是额外购买的,对进行这项工作有用的工具或设施。
而为什么每个不同的工作项目分别需要自己独立的房间呢?(虚拟环境的优点)
因为不同工作所需要的工具或设施可能会互相影响。比如上一项工作中,你在房间里引入了面粉,而如果进行别的工作,还用原本的旧房间,那么房间里的面粉还在,而这项新工作又需要引入蜡烛类的工具,那么明火遇到粉尘,就可能引起爆炸(粉尘爆炸),最后导致工作失败,而如果新建一个房间,没有之前工作留下的不相关的工具,那么就不会出现这种情况。
不同虚拟环境的选择
有很多管理虚拟环境的软件,比如网上大多数教程推荐使用的anaconda,就是一款可以建立Python虚拟环境与安装第三方库的工具。
不过我在这里推荐使用Pycharm自带的venv虚拟环境,相比之下,它的优点如下:
- 无需安装新软件,节省内存(anaconda将近10G)
- 编程与安装第三方库在同一界面,方便操作
- 可以根据需求清单一次性安装多个第三方库,无需一个个安装
所以,本教程将采用venv管理虚拟环境,接下来开始介绍到底如何用它安装Pytorch这个工具。
新建一个vnev虚拟环境
图中红蓝线所示代表随项目新建了一个虚拟环境
值得注意的是,在Pycharm中每次新建一个项目的时候,默认会自动新建一个venv虚拟环境与新项目绑定,当然,你可以选择已有的虚拟环境来与新项目绑定,以此来使用已有虚拟环境中的已安装的第三方库,而不用在新环境中再安装一遍。
不过并不推荐这样做,为了防止冲突(粉尘爆炸)。
此外,你还要记住这个项目的文件位置,之后要用到。
pip工具的使用
什么是pip工具
pip是Python自带的一个管理第三方库的工具,可以通过一些简单的命令方便地为一个虚拟环境 安装/更新/卸载 第三方库。
如果想要直接在Pycharm中安装Pytorch框架,这个工具必不可少,好在无需我们自己下载,Pycharm的默认新的虚拟环境都自带了这个工具包,可以直接使用
pip命令的基本使用方法
使用pip命令的方法有很多种,在这里我只介绍一种,直接在Pycharm中的终端进行使用,如下图所示:
接着在弹出的对话框中就可以直接使用pip命令了。
在这介绍安装第三方库的基本语法(所有命令最后按回车键执行)
-
安装第三方库,可以指定版本(默认为最新版本)
pip install 第三方库名==版本号
例子:
pip install pandas==2.20.3
-
更新第三方库版本(默认到最新版本)
pip install upgrade 第三方库名
-
查看虚拟环境中已安装的库
pip list
加速pip命令安装第三方库的速度
在新手使用pip命令安装第三方库的时候,最容易遇到的问题就是,下载安装速度太慢了,而且很容易下到一半结果直接就失败了,最后导致无法安装第三方库。
究其原因,就是pip命令下载第三方库的源头网址是在国外,因此在国内下载就会很慢而且易失败,所以解决的办法就是将pip命令的默认下载源换成国内的镜像源,不仅下载的第三方库是一样的,而且速度更快。
具体方法如下:
1. 找到C:\Users\<用户名>\pip
文件夹
由于有些电脑会隐藏这个文件夹,所以最快的方法是按快捷键win + R
弹出如图窗口并输入%appdata%:
在弹出的文件窗口中找到名字为pip的文件夹,如果没有就自己创建一个。
点进去之后再新建一个名为pip.ini
的文件(可以先建一个文本文件,然后改扩展名,如果无法改扩展名,是电脑默认隐藏了,可以在文件窗口上方偏下的位置找到查看>显示>勾选文件扩展名)
打开这个pip.ini
文件,复制以下内容粘贴到文件中
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
最后一定要保存,然后就成功换源了。
之后你再尝试在Pycharm中的终端使用pip命令安装第三方库就更快且成功率更高了。
安装GPU版本的Pytorch本体
本节是整篇教程的重点,也是与大部分教程有些不同的地方。
接下来,就要开始安装本体了,在此之前,先做一些预备工作。
打开Pytorch官网
要安装gpu版本的Pytorch,需要打开Pytorch官网,链接如下:
Pytorch官网
打开之后,在首页往下翻一段距离,会有如下界面:
其中红框内的就是不同版本的Pytorch可选择的安装版本,官网会自动为你推荐一个安装版本。
其中红箭头所指的就是与你的电脑显卡CUDA版本有关的选项,想要知道自己电脑的显卡版本,可以按如下步骤操作:
- 打开命令行(可以
win+R
然后输入cmd
) - 在命令行中输入
nvidia-smi
,回车如下图所示,红框内为你电脑的cuda版本。
接着我们回到Pytorch官网,在选择CUDA版本那块,你只要选择比你电脑CUDA版本更低的版本就行,比如自己电脑的版本为12.7,那么Pytorch的CUDA版本就可以选择11.8,12.1,12.4都可以。
接着在最后一行你会看见一个pip命令,那是官网自动生成的pip安装命令,只要直接把它复制到Pycharm的终端里,就可以自动安装Pytorch了,不过在正式安装前,我们需要再做一些准备工作。
离线安装Pytorch中体积最大的从属第三方库+在线安装剩余第三方库
虽然我们在之前已经给pip命令换了一个国内的下载源,但是使用此命令下载Pytorch的速度还是非常的慢,甚至需要几个小时,中途还很容易失败,所以在这里我推荐采用离线安装和在线安装结合的方法来下载Pytorch。
首先,我来介绍什么是从属第三方库,在安装一个第三方库的时候,你有时会发现,自己明明只安装了一个第三方库,虚拟环境中却多出来很多你没安装的库,这些就是从属第三方库,用来辅助你打算安装的库,来完善整体功能。
而Pytorch也有很多从属第三方库,其中体积最大的库就是torch库了(2G以上),它是我们安装速度慢的罪魁祸首,而其他的库都比较小,安装起来也快。于是,我们可以用以下步骤来缩短安装时间:
-
先将torch库的本体文件单独从官网上下载(可以用迅雷下载,比pip命令直接安装快得多)
下载地址形如:
https://download.pytorch.org/whl/cu121/torch-2.4.1%2Bcu121-cp311-cp311-win_amd64.whl
其中cu121对应CUDA12.1(注意有两个cu121,更改版本都要改),torch-2.4.1对应torch库本身版本,可以根据你想下载的版本对应修改下载地址,然后直接在浏览器上下载或者用迅雷下载。 -
将此文件(文件扩展名为whl)放到Pycharm项目文件夹下(就是你创立的用于安装Pytorch的项目的文件位置)
-
在Pycharm终端输入以下命令:
pip3 install 此文件名
例如:
pip3 install torch-2.4.1%2Bcu121-cp311-cp311-win_amd64.whl
这里离线安装要快得多,无需等待几个小时的时间
-
输入Pytorch官网自动为你生成的pip安装命令,用于安装剩余的从属第三方库(该命令会先检测要安装的库是否存在,如果已安装好了就自动跳过,所以不会再把torch库安装一遍)
等待一段时间后,当出现某行话,含有Successfully的字眼的时候,就代表你成功了。
至此,安装Pytorch最容易遇到问题的一步完成了,接下来的步骤虽然仍然有些复杂,但是不会再出现下载速度过慢,下载失败等让人一筹莫展的情况了。
CUDA及cuDNN的下载安装
什么是CUDA和cuDNN
简单来说,两者都算是一种加速器,正确安装之后可以提高Pytorch在gpu(独立显卡)上的运行效率,所以对于深度学习的入门来说,有着不可或缺的作用。
两者都是英伟达推出的配合深度学习及Pytorch相关软件,如果不安装CUDA和cuDNN,PyTorch-GPU将无法正常工作。
因此我们需要安装这两个软件来使得我们的Pytorch可以正常运行。
安装CUDA
首先我们需要安装CUDA。具体步骤如下:
-
打开下载官网
官网地址:CUDA Toolkit Archive -
根据自己的电脑CUDA版本来选择对应的CUDA版本(之前在安装Pytorch的时候已经知道了自己的CUDA版本)
只需要选择比自己电脑CUDA版本低的安装即可,如下图(以12.4.0为例):
按照如图安装对应安装包
下载好后,双击安装包进行安装,可以安装在自定义的目录文件夹下,但是这里推荐安装时使用精简模式,(因为之后要用到CUDA的安装目录,如果自定义的话,需要记住CUDA的安装目录)接着就根据指示,全部都跟着默认的指导一步步往下安装,最后等待一段时间后就安装成功了。 -
检验是否成功安装了CUDA
查看是否安装成功,在命令行(win+R
然后输入cmd
)输入以下指令进行检查。nvcc -V
出现与上图类似的输出就证明安装成功了。
安装cuDNN
终于,我们来到了最后一步,这也是较为复杂的一步,安装cuDNN,但是虽然较为复杂,但只要一步步慢慢来,却不是大问题。
官方地址:cudnn
如图为首页:
重要提醒:安装cuDNN需要先登录官网,如果不登陆就不会显示下载链接(点击右上角join in,再通过电子邮箱一步步注册或登录)
登录完成后,就点击图中红圈所示内容
按照红圈所示一步步点击,最后会下载一个压缩包。(注意最后一个红圈,对应你的电脑CUDA版本,如果是11.开头就点11,如果是12.开头就点12)
下载完压缩包并解压后,你会得到以下三个文件夹:
注意画红圈的三个文件夹,接下来的步骤是关键:
- 一个个分别复制其中的一个文件夹(以先复制bin文件夹为例)
- 找到当初安装CUDA的位置(如果是默认安装位置的话,直接根据以下步骤走,如果是自定义位置安装的话,以下所有文件位置都要换成你自定义的安装位置)
- 打开默认安装位置
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3
(最后一个文件夹是你的CUDA版本,不同版本路径不同),你会看到下图:
- 接着把之前复制的bin文件夹粘贴到对应的同名文件夹中(例如,你需要点开上图中的bin文件夹,在该文件夹里面粘贴之前在cuDNN里复制的bin文件夹,如果之前复制的是include文件夹就粘贴到上图include文件夹中)
- 重复以上步骤,直到三个文件夹都被粘贴到了各自的同名文件夹中
- 最后一步,配置环境变量(仅适用于CUDA安装在默认安装位置的情况)
注意:其中包含了你CUDA(不是电脑的cuda版本,而是你安装的cuda文件目录的版本,例如v12.3)的版本,使用时要将所有文件路径对应修改成你CUDA安装路径
打开命令行(win + R
然后输入sysdm.cpl)会出现如图所示,依照红圈一步步点击:
点击新建来添加环境变量:
复制以下路径到环境变量中(如果是自定义安装需要改成相应的安装路径)
(注意!注意!注意! 以下文件路径一定要与你的CUDA中那三个文件夹加一个libnvvp文件夹的文件路径一致!其中v12.3代表CUDA版本,根据自己的版本对应修改,接着需要一个一个的添加)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\libnvvp
最后都新建完成后,需要点击三个确定(之前弹出的那三个窗口中的确定)才能保存你添加的环境变量。
至此,所有操作完成之后,就要进行验证是否成功安装Pytorch-GPU了。
验证Pytorch是否正确安装
打开我们的Pycharm,然后新建一个python文件,在里面输入以下内容:
import torch
from torch.backends import cudnn
print(torch.__version__) # 输出Pytorch版本
print(torch.version.cuda) # 输出cuda版本
print(torch.cuda.is_available()) # 输出为True,则cuda安装成功
print(torch.backends.cudnn.version()) # 输出cuDNN版本
print(cudnn.is_available()) # 输出为True,则cuDNN安装成功
若是依次输出以下内容,就证明你整体安装成功了。
2.3.1+cu121 # 你的Pytorch版本
12.1 # 你的cuda版本
True
8907 # 你的cuDNN版本
True
尾声
Pytorch的安装对初学者来说,总体比较复杂,在这里我尽量用较不易失败的方法来配置整体环境,避开几个可能会失败的地方,虽然仍然有些复杂,但总体上是否有做到那“三"之妙道呢,又或许时不短,力不少,效不高呢?
最后成功安装Pytorch,我们就可以开始进入深度学习的学习了。
(本文章若有不足或错误之处,希望大家反馈,我会及时修改)
标签:力少,时短,Pytorch,虚拟环境,CUDA,版本,pip,安装 From: https://blog.csdn.net/2301_79225008/article/details/142851031