首页 > 其他分享 >安装GPU版本的Pytorch-蕴含“三”之妙道(时短,力少,效高)

安装GPU版本的Pytorch-蕴含“三”之妙道(时短,力少,效高)

时间:2024-10-18 11:47:58浏览次数:9  
标签:力少 时短 Pytorch 虚拟环境 CUDA 版本 pip 安装

前言

Pytorch作为深度学习入门的一个框架,十分适合初学者入门,但是很多新手总会在安装相关环境的时候遇到各种难题,无法下载,下载速度慢,版本不兼容等情况,往往费时费力最后都不一定能下好,在这里我总结了下载安装的详细步骤,以及可能会遇到的问题,来供大家参考。

值得注意的是,这种方法与网上大多数教程不太一样,是基于Pycharm自带的虚拟环境,但最后的结果是一样的,而且更加省时省力,且无需科学上网。
主要有以下步骤:

  1. 安装Pycharm(该步骤可参考网上专门教程)
  2. 新建一个venv虚拟环境
  3. pip命令详解及修改加速
  4. GPU版本Pytorch本体包下载
  5. cuda及cuDNN下载
  6. 检验是否安装成功

事不宜迟,让我们开始吧。

Pycharm自带的venv虚拟环境

什么是虚拟环境

在新建第一个虚拟环境之前,我希望通过一个简单的比喻来介绍一下到底什么是虚拟环境。

如果把一个Python项目比作一项工作的话,那么虚拟环境就可以看作工作用的房间,每个房间都有自带的相同的基础家具(Python自带库),而你安装的第三方库,就可以看作是额外购买的,对进行这项工作有用的工具或设施。

而为什么每个不同的工作项目分别需要自己独立的房间呢?(虚拟环境的优点)

因为不同工作所需要的工具或设施可能会互相影响。比如上一项工作中,你在房间里引入了面粉,而如果进行别的工作,还用原本的旧房间,那么房间里的面粉还在,而这项新工作又需要引入蜡烛类的工具,那么明火遇到粉尘,就可能引起爆炸(粉尘爆炸),最后导致工作失败,而如果新建一个房间,没有之前工作留下的不相关的工具,那么就不会出现这种情况。

不同虚拟环境的选择

有很多管理虚拟环境的软件,比如网上大多数教程推荐使用的anaconda,就是一款可以建立Python虚拟环境与安装第三方库的工具。
不过我在这里推荐使用Pycharm自带的venv虚拟环境,相比之下,它的优点如下:

  1. 无需安装新软件,节省内存(anaconda将近10G)
  2. 编程与安装第三方库在同一界面,方便操作
  3. 可以根据需求清单一次性安装多个第三方库,无需一个个安装

所以,本教程将采用venv管理虚拟环境,接下来开始介绍到底如何用它安装Pytorch这个工具。

新建一个vnev虚拟环境

图中红蓝线所示代表随项目新建了一个虚拟环境
图中红蓝线所示代表随项目新建了一个虚拟环境
值得注意的是,在Pycharm中每次新建一个项目的时候,默认会自动新建一个venv虚拟环境与新项目绑定,当然,你可以选择已有的虚拟环境来与新项目绑定,以此来使用已有虚拟环境中的已安装的第三方库,而不用在新环境中再安装一遍。

不过并不推荐这样做,为了防止冲突(粉尘爆炸)。

此外,你还要记住这个项目的文件位置,之后要用到。

pip工具的使用

什么是pip工具

pip是Python自带的一个管理第三方库的工具,可以通过一些简单的命令方便地为一个虚拟环境 安装/更新/卸载 第三方库。

如果想要直接在Pycharm中安装Pytorch框架,这个工具必不可少,好在无需我们自己下载,Pycharm的默认新的虚拟环境都自带了这个工具包,可以直接使用

pip命令的基本使用方法

使用pip命令的方法有很多种,在这里我只介绍一种,直接在Pycharm中的终端进行使用,如下图所示:Pycharm终端
接着在弹出的对话框中就可以直接使用pip命令了。
在这介绍安装第三方库的基本语法(所有命令最后按回车键执行)

  1. 安装第三方库,可以指定版本(默认为最新版本)

    pip install 第三方库名==版本号
    

    例子:

    pip install pandas==2.20.3
    
  2. 更新第三方库版本(默认到最新版本)

    pip install upgrade 第三方库名
    
  3. 查看虚拟环境中已安装的库

    pip list
    

加速pip命令安装第三方库的速度

在新手使用pip命令安装第三方库的时候,最容易遇到的问题就是,下载安装速度太慢了,而且很容易下到一半结果直接就失败了,最后导致无法安装第三方库。

究其原因,就是pip命令下载第三方库的源头网址是在国外,因此在国内下载就会很慢而且易失败,所以解决的办法就是将pip命令的默认下载源换成国内的镜像源,不仅下载的第三方库是一样的,而且速度更快。

具体方法如下:
1. 找到C:\Users\<用户名>\pip文件夹
由于有些电脑会隐藏这个文件夹,所以最快的方法是按快捷键win + R弹出如图窗口并输入%appdata%:
%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
其中红框内的就是不同版本的Pytorch可选择的安装版本,官网会自动为你推荐一个安装版本。
其中红箭头所指的就是与你的电脑显卡CUDA版本有关的选项,想要知道自己电脑的显卡版本,可以按如下步骤操作:

  1. 打开命令行(可以win+R然后输入cmd
  2. 在命令行中输入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以上),它是我们安装速度慢的罪魁祸首,而其他的库都比较小,安装起来也快。于是,我们可以用以下步骤来缩短安装时间:

  1. 先将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库本身版本,可以根据你想下载的版本对应修改下载地址,然后直接在浏览器上下载或者用迅雷下载。

  2. 此文件(文件扩展名为whl)放到Pycharm项目文件夹下(就是你创立的用于安装Pytorch的项目的文件位置)

  3. 在Pycharm终端输入以下命令:

    pip3 install 此文件名
    

    例如:

    pip3 install torch-2.4.1%2Bcu121-cp311-cp311-win_amd64.whl
    

    这里离线安装要快得多,无需等待几个小时的时间

  4. 输入Pytorch官网自动为你生成的pip安装命令,用于安装剩余的从属第三方库(该命令会先检测要安装的库是否存在,如果已安装好了就自动跳过,所以不会再把torch库安装一遍)

等待一段时间后,当出现某行话,含有Successfully的字眼的时候,就代表你成功了。

至此,安装Pytorch最容易遇到问题的一步完成了,接下来的步骤虽然仍然有些复杂,但是不会再出现下载速度过慢,下载失败等让人一筹莫展的情况了。

CUDA及cuDNN的下载安装

什么是CUDA和cuDNN

简单来说,两者都算是一种加速器,正确安装之后可以提高Pytorch在gpu(独立显卡)上的运行效率,所以对于深度学习的入门来说,有着不可或缺的作用。

两者都是英伟达推出的配合深度学习及Pytorch相关软件,如果不安装CUDA和cuDNN,PyTorch-GPU将无法正常工作。
因此我们需要安装这两个软件来使得我们的Pytorch可以正常运行。

安装CUDA

首先我们需要安装CUDA。具体步骤如下:

  1. 打开下载官网
    官网地址:CUDA Toolkit Archive

  2. 根据自己的电脑CUDA版本来选择对应的CUDA版本(之前在安装Pytorch的时候已经知道了自己的CUDA版本)
    只需要选择比自己电脑CUDA版本低的安装即可,如下图(以12.4.0为例): 请添加图片描述
    按照如图安装对应安装包
    请添加图片描述
    下载好后,双击安装包进行安装,可以安装在自定义的目录文件夹下,但是这里推荐安装时使用精简模式,(因为之后要用到CUDA的安装目录,如果自定义的话,需要记住CUDA的安装目录)接着就根据指示,全部都跟着默认的指导一步步往下安装,最后等待一段时间后就安装成功了。

  3. 检验是否成功安装了CUDA
    查看是否安装成功,在命令行(win+R然后输入cmd)输入以下指令进行检查。

    nvcc  -V
    

请添加图片描述
出现与上图类似的输出就证明安装成功了。

安装cuDNN

终于,我们来到了最后一步,这也是较为复杂的一步,安装cuDNN,但是虽然较为复杂,但只要一步步慢慢来,却不是大问题。

官方地址:cudnn

如图为首页:
重要提醒:安装cuDNN需要先登录官网,如果不登陆就不会显示下载链接(点击右上角join in,再通过电子邮箱一步步注册或登录)
登录完成后,就点击图中红圈所示内容
cudnn首页
按照红圈所示一步步点击,最后会下载一个压缩包。(注意最后一个红圈,对应你的电脑CUDA版本,如果是11.开头就点11,如果是12.开头就点12)
cuDNN下载完成后
下载完压缩包并解压后,你会得到以下三个文件夹:

请添加图片描述
注意画红圈的三个文件夹,接下来的步骤是关键:

  1. 一个个分别复制其中的一个文件夹(以先复制bin文件夹为例)
  2. 找到当初安装CUDA的位置(如果是默认安装位置的话,直接根据以下步骤走,如果是自定义位置安装的话,以下所有文件位置都要换成你自定义的安装位置)
  3. 打开默认安装位置 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3最后一个文件夹是你的CUDA版本,不同版本路径不同),你会看到下图:
    请添加图片描述
  4. 接着把之前复制的bin文件夹粘贴到对应的同名文件夹中(例如,你需要点开上图中的bin文件夹,在该文件夹里面粘贴之前在cuDNN里复制的bin文件夹,如果之前复制的是include文件夹就粘贴到上图include文件夹中)
  5. 重复以上步骤,直到三个文件夹都被粘贴到了各自的同名文件夹中
  6. 最后一步,配置环境变量(仅适用于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

相关文章

  • PyTorchStepByStep - Chapter 5: Convolutions
     single=np.array([[[[5,0,8,7,8,1],[1,9,5,0,7,7],[6,0,2,4,6,6],[9,7,6,6,8,4],[8,3,8,5,1,3],[7,2,7,0,1,0]]]])single.shape#(1,1,6,6)identity=np.array([[[[0,0,......
  • PyTorchStepByStep - Bonus Chapter: Feature Space
      ......
  • PyCharm配置PyTorch环境(完美解决找不到Conda可执行文件python.exe问题)
    出现的问题以下是第一次踩坑的流程,具体解决方法附在后面新建一个python项目,如图所示设置相关信息设置项目名称和位置interpretertype(python解释器类型)==>自定义环境环境==>Generatenew,创建一个新环境类型==>condapython==>3.11,如下所示,在创建好的conda环境中使用的......
  • 【深度学习代码调试2】环境配置篇(中) -- 列出conda环境中所有env的pytorch版本
    【深度学习代码调试2】环境配置篇(中)--列出conda环境中所有env的pytorch版本写在最前面如何检查所有Conda环境中的PyTorch版本(并重点提示PyTorch1.7.1版本)1.列出所有Conda环境2.检查每个环境中的PyTorch版本方法1:使用Python命令检查PyTorch版本方法2......
  • 基于yolov5的手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、pytho
     更多目标检测和图像分类识别项目可看我主页其他文章功能演示:yolov5,手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili(一)简介基于YOLOv5的手机屏幕缺陷检测系统是在PyTorch框架之下得以实现的。这是一个完备的项目,涵盖......
  • PyTorch指南
    对于刚开始学习PyTorch的初学者,以下是几本推荐的书籍,它们适用于理解和实践深度学习的基本概念:1.《深度学习入门:基于Python的理论与实现》(作者:斋藤康毅)这本书虽然主要介绍的是基于Python的深度学习,但不是专门针对PyTorch的。它适合初学者建立深度学习的基础理论知识。学完基础理......
  • 如果你的PyTorch优化器效果欠佳,试试这4种深度学习中的高级优化技术吧
    在深度学习领域,优化器的选择对模型性能至关重要。虽然PyTorch中的标准优化器如SGD、Adam和AdamW被广泛应用,但它们并非在所有情况下都是最优选择。本文将介绍四种高级优化技术,这些技术在某些任务中可能优于传统方法,特别是在面对复杂优化问题时。我们将探讨以下算法:......
  • Pytorch深度学习
    线性模型1.dataset准备数据集2.model选择合适的模型根据数据集的情况选择3.training训练4.将模型里的权重确定下来将来可应用inferring推理监督学习kaggle网站把拿到的数据集分为两部分一部分叫trainingset训练集(x,y)另外一部分叫测试集一般情况下我们是知道......
  • 基于LSTM-Transformer混合模型实现股票价格多变量时序预测(PyTorch版)
    前言系列专栏:【深度学习:算法项目实战】✨︎涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记忆......
  • 基于yolov10的PCB板缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python
    更多目标检测和图像分类识别项目可看我主页其他文章功能演示:yolov10,PCB板缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的PCB板缺陷检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集,训练好的模型......