从零开始搭建Pytorch-GPU深度学习环境

文章目录

  • 环境配置
  • Anaconda-Python3.9 —— 开源的 Python 发行版本
  • Anaconda的安装
  • Conda——包含在Anaconda中
  • CUDA和CUDNN——GPU复杂计算架构和DNN加速库
  • 对CUDN和CUDNN的理解
  • CUDA的安装
  • CUDNN的安装
  • Pytorch深度学习框架(模型库 / 积木)
  • 虚拟环境的创建与激活
  • 对Pytorch的理解
  • Pytorch安装
  • 常用库的安装
  • pip和conda
  • conda安装方式
  • pip安装方式
  • Pycharm——Python IDE
  • IDE和代码编辑器的理解
  • 专业版Pycharm安装教程
  • Pycharm项目使用Pytorch虚拟环境中的Python解释器
  • 感受分享
  • 环境配置

    Anaconda-Python3.9 —— 开源的 Python 发行版本

  • Anaconda和Python的关系
    Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。
  • 包含Python3.9, Conda
  • Anaconda的安装

  • 从官网直接下载,一切按照默认流程指示安装,除了下图所示步骤(选中Add Anaconda to my PATH environment variable就不用自己添加路径了),可以不装在C盘,但要确保整个安装目录里没有空格全是英文
  • 官网网址:https://www.anaconda.com/products/individual
  • Conda——包含在Anaconda中

    Conda用途

  • conda是包及其依赖项和环境的管理工具
  • 适用于包含Python在内的多种语言
  • 快速安装、运行和升级包及其依赖项
  • 在计算机中便捷地创建、保存、加载和切换环境
  • 如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。
    ——conda官方网站

    CUDA和CUDNN——GPU复杂计算架构和DNN加速库

    对CUDN和CUDNN的理解

  • 什么是CUDA——使GPU能解决复杂计算问题的架构
    CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
  • 什么是CUDNN——用于DNN的GPU加速库
    NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。
  • CUDA与CUDNN的关系
    CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。CUDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
  • 作者:Sunglam
    链接:https://www.jianshu.com/p/622f47f94784
    来源:简书

    CUDA的安装

  • 推荐下载10.2或11.3,这里我下载的是10.2,因为这是官方推荐的cuda版本,支持大多数的 pytorch 版本

  • CUDA10.2官网链接
    https://developer.nvidia.com/cuda-10.2-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

  • 安装时直接点击exe文件,跟随操作指引安装即可,安装选项处选择自定义,其他所有默认即可

  • CUDA与Pytorch版本对应官网链接
    https://pytorch.org/get-started/previous-versions/

  • CUDA与Pytorch版本对应表格

  • Pytorch 版本 CUDA 环境
    0.4.1、1.2.0、1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 9.2
    1.2.0、1.1.0、1.0.0(1) 10.0
    1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 10.1
    1.5.0(1)、1.6.0、1.7.0(1)、1.8.0(1)、1.9.0、1.10.0 10.2
    1.7.0(1) 11.0
    1.8.0(1)、1.9.0、1.10.0 11.1
    1.8.0(1)、1.9.0、1.10.0 11.3
  • CUDA和显卡算力的匹配

  • 直接方法
    0)桌面右击NVIDIA控制面板
    1)打开帮助-系统信息

    2)查看组件选项卡,图示区域的CUDA型号
  • 间接方法
    0)查看显卡算力
    从官网直接查看,官网网址: https://developer.nvidia.com/zh-cn/cuda-gpus#compute

    1)查看CUDA版本能够支持的最大算力
    直接查看官网文档,官网链接:https://docs.nvidia.com/cuda/ampere-compatibility-guide/index.html#building-ampere-compatible-apps-using-cuda-10-0
    2)算力匹配
    CUDA支持的最高算力要≥显卡的算力,例如:
    算力7.0的显卡可以在支持最高算力7.5的CUDA版本下运行,但是算力7.5的显卡不可以在支持最高算力7.0的CUDA版本下运行,同理算力8.x的显卡不可以在支持最高算力7.x的CUDA版本下运行

  • CUDNN的安装

  • 根据CUDA的版本型号,下载相应的CUDNN的版本型号,型号对应见CUDNN下载官网
    CUDNN下载官网:https://developer.nvidia.com/rdp/cudnn-archive
  • 解压下载的CUDNN安装包,找到安装CUDA的根目录——C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2(版本号)
  • Pytorch深度学习框架(模型库 / 积木)

    虚拟环境的创建与激活

    -用Conda 创建并激活一个Python虚拟环境,虚拟环境命名为Pytorch
    Win+R 启动 CMD, 创建一个名为pytorch的python虚拟环境并激活它,用作后续安装Pytorch用,该环境的python版本为3.9(与你安装过的Python要一致,这里使用对应的Anaconda版本带的Python):

    conda create –n pytorch python=3.9
    
    activate pytorch
    
  • 什么是虚拟环境
    它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。
  • 作者:悦悦的小屋
    链接:https://www.cnblogs.com/yuehouse/p/10239195.html
    来源:博客园

  • 为什么需要Pytorch虚拟环境(也可推及其他虚拟环境的意义)
    在安装某版本PyTorch库的过程中,会自动替换其所有依赖库(比如numpy等科学计算基础库)至相应匹配的版本。而这些基础库又是其他某些高级库(比如Tensorflow、PaddlePaddle)的重要依赖,它们之间也有密切的版本对应关系;又由于那些高级库与PyTorch无关,所以在安装PyTorch的时候不会去自动替换掉那些高级库的版本。因此,自动换掉的基础库很有可能与其他高级库产生不匹配的冲突,导致原先功能无法正常使用,也就是原先的运行环境被污染了。为了避免这种污染的发生,最好新建一个环境,单独安装PyTorch及其依赖的所有库,互不干扰,避免毁坏原先辛辛苦苦配好的运行环境。
  • 作者:乐山乐水
    链接:https://www.zhihu.com/question/479904242/answer/2061803100
    来源:知乎

    对Pytorch的理解

  • Pytorch是一种深度学习网络的框架
  • 对深度学习网络框架的理解
    深度学习网络的框架包括Pytorch,Tensorflow等。
    深度学习框架,包括Pytorch,Tensorflow,简单来说就是库,编程时需要import用到的库。
    作一个简单的比喻,一套深度学习框架就是这个品牌的一套积木,各个组件就是某个模型或算法的一部分,你可以自己设计如何使用积木去堆砌符合你数据集的积木。好处是你不必重复造轮子,模型也就是积木,是给你的,你可以直接组装,但不同的组装方式,也就是不同的数据集则取决于你。
    深度学习框架的出现降低了入门的门槛,你不需要从复杂的神经网络开始编代码,你可以依据需要,使用已有的模型,模型的参数你自己训练得到,你也可以在已有模型的基础上增加自己的layer,或者是在顶端选择自己需要的分类器。当然也正因如此,没有什么框架是完美的,就像一套积木里可能没有你需要的那一种积木,所以不同的框架适用的领域不完全一致。
  • 作者:王弗兰克
    链接:https://www.zhihu.com/question/53465308/answer/136653522
    来源:知乎

    Pytorch安装

    直接从官网安装,按照下图所示的配置选择即可:
    官网链接:https://pytorch.org/get-started/locally/
    配置图:

    这里选择了Windows系统下Conda方式安装,匹配之前安装的CUDA版本10.2。

    常用库的安装

  • 可以在anaconda命令行中安装,也可以在cmd中用pip一起安装
  • pip和conda

  • 什么是pip
    pip是用于安装和管理软件包的包管理器,可在cmd中用pip命令安装各种包,在Python 2.7.9及后续版本的Python安装中默认安装pip,无需单独安装。
  • pip和conda的区别
    pip:
    不一定会展示所需其他依赖包。
    安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。
    conda:
    列出所需其他依赖包。
    安装包时自动安装其依赖项。
    可以便捷地在包的不同版本中自由切换。
    → 环境管理
    pip:维护多个环境难度较大。
    conda:比较方便地在不同环境之间进行切换,环境管理较为简单。
    → 对系统自带Python的影响
    pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。
    conda:不会影响系统自带Python。
    → 适用语言
    pip:仅适用于Python。
    conda:适用于多种语言,包括Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
  • 作者:Raxxie
    链接:https://www.jianshu.com/p/62f155eb6ac5
    来源:简书

  • pip和conda安装方式的区别
    两者都可以用于python包的安装,但两者并不冲突,在使用过程中,pip搜索源的包数量比conda更多,往往会出现conda找不到的包但可以使用pip安装
  • 作者:python技巧(数据分析及可视化)
    链接:https://ask.csdn.net/questions/7410907
    来源:CSDN

    conda安装方式

    0.任意目录下新建一个txt文件,这里以命名为1.txt为例,在里面写入所有需要安装的库的名字。

    numpy
    matplotlib
    scipy
    Pillow
    opencv
    

    1.打开anaconda的命令行(Anaconda Powershell Prompt),切换到txt文件的位置,比如我存在桌面,则切换代码如下:

    cd C:\Users\LENOVO\Desktop
    

    2.执行1.txt

    conda install --file=1.txt
    

    pip安装方式

    0.任意目录下新建一个txt文件,这里以命名为1.txt为例,在里面写入所有需要安装的库的名字。
    1.在1.txt存储位置右键选择OpenCMD(如果不知道怎么设置让右键出现OpenCMD选项可以看我的另一篇文章:Win10双击exe文件cmd执行后闪退解决办法和右键出现OpenCMD选项设置)
    2.执行1.txt

    pip install -r 1.txt
    

    Pycharm——Python IDE

    IDE和代码编辑器的理解

  • IDE(Integrated Development Environment 集成开发环境)
    IDE 是开发者创建程序时使用的软件包。它通过简单的用户界面集成多个高度关联的组件,从而最大化程序员的生产效率。本质上,IDE 是一种改进代码创建、测试和 debug 流程的工具,它使这些工作更加简单。
    IDE 使用的工具包括:
    文本编辑器
    编译器和/或解释器
    装配自动化工具(assembly automation tool)
    调试器(debugger)

  • 代码编辑器(code editor)
    代码编辑器是一个能够突出显示语法和安排代码版式的文本编辑器。高级代码编辑器可以开发和修改代码。

  • IDE 和代码编辑器的共同点
    存储和重新打开脚本
    运行代码
    debug
    突出显示语法

  • IDE 和代码编辑器的不同点

  • 举例
    Python自带的IDLE就是一个Python的代码编辑器,而Pycharm就是一个很流行的Python IDE

  • 社区版和专业版的区别

    0.专业版是收费的,Professional教育版是免费,社区版是免费的 Free Community
    1.教育版是教学式的,完整的引用了社区版所有的功能,有一个教学功能,更适合学生。老师可以用他创建教学,学生可以通过他完成教学作业。集成了一个python的课程学习平台,可以有题目或者新手指导学习。需要足够的英语来支撑。或者使用汉化也是可以的,汉化存在缺点,python提供新的课程以后,你的汉化也要更新。
    2.社区版,就是功能不全的专业版,是用来解决工作问题的。除了一些功能没有以外(例如:Web开发,Python Web框架,Python的探查,远程开发能力,数据库和SQL支持),其他的功能和专业版是一样的。
    3.专业版,功能丰富。对开发者来说十分棒,是一款十分专业的开发工具。
    注:对于我(一个刚开始使用深度学习环境的小白)来说,专业版和社区版的最大区别就是能不能远程链接实验室服务器,使用服务器上的显卡来跑程序,所以建议如果需要自身电脑GPU资源不够的同学使用专业版。

  • 专业版Pycharm安装教程

    可以参考这个链接,亲测有效:
    https://www.cnblogs.com/codeguide/p/15924438.html

    Pycharm项目使用Pytorch虚拟环境中的Python解释器

  • 常见错误的开始——选择默认Python解释器
    如果一开始新建项目的时候,使用默认的解释器(Python Interpreter),一般是定位在C盘的本地的解释器,是系统里面安装的Python作为解释器,类似下图:

    那之前在conda里配置好的pytorch虚拟环境就没用了。
  • 报错
    在运行项目的时候还是会发现各种报错,说你没有安装torch还有无法使用CUDA之类的,以下是我当时遇到的报错(如果你也遇到了累类似问题可以参考我的解决办法):
    ①torch报错
    torch未安装,这个我一开始给安上了忘记截图错误了,当时我还没有意识到问题,只疑心为啥要重新安,不是刚安装完么(痛苦面具;
    ②CUDA报错
    具体报错是:AssertionError: Torch not compiled with CUDA enabled;
    含义是:在编译torch的时候,CUDA并没有起作用
    这时我意识到事情不太对劲,我不是都安装了一遍么?
  • 解决办法
    在文件-设置中选择之前隔离的虚拟环境中的解释器,入下图所示,Anaconda3-2021.11\python.exe是Anaconda里面附带安装的Python解释器;
    而Anaconda3-2021.11\envs\pytorch\python.exe才是你之前用conda命令创建和激活的名为pytorch的虚拟环境中的解释器,所以选择这个解释器,之前因为缺这个环境那个环境的问题就不存在了。
  • 感受分享

  • 为什么写这个记录
    其实自己也是综合网上的很多教程,加上自己的试错经验来写的,一直在不断的改,希望给自己也给后来人一个能够没有什么问题的环境配置教程,但是每个人遇到的问题总是各不相同,这次我用这个配置的环境把我的代码跑起来了,应该不会再进行修改了,这就是我能跑出代码的环境配置了,我是一个正在做毕设的小白,希望从点滴记录也汇报那些用点滴记录照亮后来者前路的CSDNer。
  • 总体感受
    网上的很多教程只写了过程,却很少有解释清楚为什么这么做,这到底是在干啥,如果想搞清楚每一步到底是在做什么有什么意义,比如这个虚拟环境的create,如果我在配置的时候没有明白这是建立了一个虚拟环境和虚拟环境的意义,只是把命令输入进去了,我只会把他当成安装torch的一个命令步骤,在后边遇到问题的时候也无法想到是虚拟环境隔离解释器的原因。想要明白每一步做什么,还是需要多去搜索几次,多去看看大家遇到的问题,但我觉得这个时间花的是值得的,要不然你之后碰见问题的时候再去探究你当初做了什么,就更费劲儿了。
  • 版本匹配
    还有一小点经验就是,要特别注重有相关性的环境配置之间的版本匹配性,有的环境一旦安上就很难卸载干净,这是我之前在安装通信工程专业软件包时经常遇到的问题,所以尽量保证一次就安装上匹配正确的版本,不过很庆幸,这次环境配置中,即使安装错了版本,uninstall的过程也很顺利和干净还能很快的重新install新版本,但注意点总是好的,因为我以前遇到过最后只能换电脑的情况。
  • 物联沃分享整理
    物联沃-IOTWORD物联网 » 从零开始搭建Pytorch-GPU深度学习环境

    发表评论