工欲善其事,必先利其器(3)——PyTorch深度学习环境安装与配置

#科技青年#

在前面的系列文章中,我们分别介绍了:

Python开发环境的安装与配置

使用PyCharm进行程序的开发与调试

今天,我们再来介绍如何在PyCharm中配置深度学习环境,并在后续章节中通过实例来演示深度学习在图像处理方面的应用。虽然Python平台下有许多深度学习框架,如TensorFlow、Keras、Theano以及Mxnet等,不过老码农还是喜欢使用PyTorch,本文就以PyTorch为例进行配置。

PyTorch简介

PyTorch的前身是Torch,使用Lua语言开发,Torch是一个基于BSD License的开源科学计算框架,最初版本于2002年发布,广泛应用于机器学习领域,受益于Lua语言的特性,它即简单易用又高效,为了提高性能,底层使用C/CUDA实现。其的核心特性如下:

  1. 功能强大的N维数组,也称之为张量;
  2. 为数组索引、切片、转置等操作提供了多种方法;
  3. 通过LuaJIT提供了一个非常好的C语言接口;
  4. 线性代数支持程序;
  5. 神经网络与基于能量的模型;
  6. 数学优化程序;
  7. 快速高效的GPU支持;
  8. 可嵌入IOS和Android后台。

PyTorch的前身Torch

PyTorch复用了Torch的底层框架,使用Python重新改写了很多功能,使得PyTorch更加灵活。它最初于2017年1月,由Facebook FAIR(脸书人工智能研究院)推出,现在的最新版本已经升级到1.5,除了提供Python接口外,它还提供C++接口,使用户可以通过更高效的C++语言来调用训练好的PyTorch模型。目前PyTorch即可以运行于支持CUDA的GPU,也可以直接在CPU运行(当然,速度会慢很多)。

PyTorch的设计追求最少的封装,它的设计遵循张量->自动求导->模型三个由低到高的抽象层次,这三层之间紧密联系,这种简洁的设计使得该库易于学习和使用。PyTorch的源码只有TensorFlow的十分之一左右,但是PyTorch的简洁不以速度为代价,在许多评测中,同样的算法,PyTorch的速度表现都胜过了其它框架。个人认为,PyTorch框架是众多机器学习框架中设计最优雅的一个。

Cuda简介与安装

CUDA(Compute Unified Device Architecture)是著名显卡厂商英伟达推出的一套并行计算架构,该架构充分利用GPU的并行特性,能够高效的解决许多复杂的计算问题,开发人员可以使用C/C++,FORTRAN等多种语言编写CUDA程序,目前CUDA已经被广泛的用于处理计算量巨大的复杂问题,特别是以神经网络为基础的深度学习领域。

支持并行计算的CUDA

在安装CUDA之前确保系统已经安装支持CUDA开发的GPU及其驱动,在Windows下可以通过设备管理器查看当前系统安装的GPU型号,然后可以根据型号查看该GPU对CUDA的支持情况,如下图:

通过设备管理器查看显卡类型

在确认支持CUDA后,可以搜索也可以直接输入网址打开CUDA工具包页面,这里有相关工具的介绍,见下图:

CUDA开发包

点击CUDA Toolkit下面的下载按钮进入下载页面,根据自己的软硬件平台选择合适的选项,如下图:

选择CUDA版本

默认情况下会下载最新的10.2版本,如果想下载其它版本可选择Legacy Releses按钮进入历史版本页面,如下图:

CUDA历史版本

选择需要的版本,将进入与最新版本类似的下载选项页面,下载完成后,打开安装包,根据根据提示完成安装即可。

PyTorch安装

PyTorch中有大量的numpy数组操作,所以在安装PyTorch之前需要先安装numpy,此外在实际应用中根据数据分析的需要,一般还会安装如scipy、pandas、matplotlib等库,在本示例中我们就一并安装。打开windows命令行窗口(linux是终端,命令略有差别),输入命令如下图:

安装Numpy等库

因为numpy已经安装,所以直接跳过。Scipy库因为没有安装需要下载,老码农百兆宽带,下载速度却只能可怜以kb计,关键是有时候还会出错,为了解决这个问题,在网上找到了国内的镜像服务器,输入命令如下图:

使用高内镜像下载

这次速度快了很多,一会儿就下载完成并安装成功,见下图:

依赖库安装成功

依赖库安装成功,准备工作就绪,正式开始PyTorch安装,打开PyTorch官网,如下图:

PyTorch官网安装页面

选择1.5稳定版,喜欢尝鲜的小伙伴也可以选择预览版(不稳定,存在潜在问题),选择系统、安装方式、编程语言、CUDA版本后,会在最下方给出运行命令,正常情况下只需要将该命令复制并在终端窗口执行即可完成安装。

不幸的是,上面官方给出的安装方式,对于国内的广大用户来说,存在下载速度太慢,甚至无法安装的问题,老码农在不同地方尝试都会出现下面问题(翻墙是一种解决办法),见下图:


直接使用官方安装方式会出错

针对这一问题,老码农找到了一个有效的解决办法,打开上面命令最后的网址,会看到如下图内容:


PyTorch安装文件列表

这里显示的是所有可用版本的轮子文件列表,在这里选择自己需要的版本,然后通过右键复制链接,再通过一些下载工具来下载,比如老码农使用迅雷来下载,很快就能完成。在这里需要注意的是,除了要下载PyTorch的轮子文件外,如果是做图像处理方面的应用,需要一并下载TorchVision的轮子文件,安装方式与PyTorch安装类似。

关于文件命名做个简要说明,见下图:

文件命名规则

文件名主要包含四个关键信息,依次是CUDA版本、PyTorch版本、Python版本和系统架构,TorchVision的命名与此类似。

下载完成后,直接通过轮子文件安装,会非常高效,安装完成后会得到如下结果:

PyTorch安装成功

CPU版PyTorch安装与GPU版类似,不同的是CPU版不需要GPU支持,所以在没有GPU显卡的系统也可以运行,也不需要安装CUDA开发包,此外在选择CUDA版本的时候选择None即可,见下图:

CPU版PyTorch安装选项

在安装完成之后,测试一下PyTorch是否能正常工作,在命令行窗口依次输入如下图的命令:

测试PyTorch是否安装成功

如果能看到类似上面的输出结果(这里生成的是一个随机的4x5张量,所以每个人的输出结果会各不相同),那么恭喜你,PyTorch已经安装完毕,可以开始深度学习相关的开发了。

在PyCharm中使用PyTorch

打开PyCharm,输入类似上面的测试代码,并运行程序,如果运行成功,那么恭喜你。不过有些小伙伴可能会出现如下错误:

PyCharm中出现错误

其实这个错误的原因很简单,虽然我们已经安装了PyTorch库,但是PyCharm并不知道,所以需要在PyCharm中导入这些内容,可以通过菜单File->Setting->Project->Project Interpreter设置,见下图:

解释器设置

点击红框中的+号,会出现下面的包管理页面:

包管理器

左侧是可用的有效包列表,因为此处列出的包过多,可以通过红框1出输入包名搜索,选中需要的包后,右侧会出现描述信息,同时可以在红框2处指定想要安装的版本号和特殊选项。最后点击红框3出的按钮安装包即可。

再次测试,出现如下结果:

PyCharm中测试成功

至此,我们已经可以在PyCharm中使用PyTorch进行深度学习相关的开发。虽然PyTorch是一个优秀的开发框架,但是要想灵活高效的使用它,还需要不断的学习和实践。

后记

在下一篇文章中,老码农准备通过一个实例程序来演示使用PyTorch进行图像处理方面的深度学习应用开发,敬请期待。

举报
评论 0