我的学PyTorch之路(1)

  人工智能(AI)那么火,最主要是它能解决工作和生活中的许多问题。而我,一直没有入门。目前最大的AI两大框架是TensorFlow和PyTorch。看过不少文章,综合对比之后,我选择了PyTorch。但这种框架,需要有大段的时间静下心来好好学习。终于在这个五一,可以来学一学了。

PyTorch是什么

  PyTorch是一个开源Python机器学习库,基于Torch,用于自然语言处理等应用程序。

优点:

  • PyTorch是相当简洁且高效快速的框架
  • 设计追求最少的封装
  • 设计符合人类思维,它让用户尽可能地专注于实现自己的想法
  • 与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
  • PyTorch作者亲自维护的论坛 供用户交流和求教问题
  • 入门简单

  结论:PyTorch更有利于研究人员、爱好者、小规模项目等快速搞出原型。而TensorFlow更适合大规模部署,特别是需要跨平台和嵌入式部署时。

安装的困难及解法

  也不知道本次能“走多远”,有些东西学着学着就没有下文了,工作的原因,时间的原因,有时是懒。总是有些东西是半途而废了。按以往学东西和写文章的经验,我一般是学会后再“复盘”写文章的,这样思路比较清晰,读者也少走弯路。但我最近还得到另一个经验,写文章需要有激情,特别是内容长的文章。所以我这次决定边学边记。大家可以一起来学。希望我自己这次能学成这个宝贝武器。

  进入正题。学一个重型武器,就像取经,要一路打怪升级,经历九九八十一难,方成正果。我的PyTorch学习之路的第一难就是安装。具体说是如何在我的Windows 10上安装PyTorch。不要以为装个东西总没有学编程那么难。这活难就难在:

  1. 官方资源都在国外,一言不合就请求超时。这个是重点。
  2. 平台多,这个我选windows就好。版本多,有点迷茫,不知道该选旧还是选新,还是中间哪个版本。后面我会讲本次的做法。
  3. 它不是一个组件,而是两个组件搭配,两个的版本如何搭配,没有指南。
  4. 其它,要仅支持CPU还是也要支持GPU?支持GPU就是算得更快,初学者需要吗?

  先看了一篇《PyTorch 深度学习:60分钟快速入门》然后就准备试验上面的代码,当然先得安装PyTorch环境。Python我有安装,版本3.7。然后就是各种掉坑了。各种办法,别人能成功,我不能。改为阿里镜像、清华镜像。都不行。最后是这篇文章带我走出了坑。小白自学机器学习----3.令人头秃的pytorch安装 。我学到几点:

  1. 原来pip的安装包是whl文件,之前一直不知道。whl文件可以手工下载后,再本地安装。这种做法,对于国外的whl大文件,非常有用。
  2. PyTorch的cu92是指CUDA的9.2版本。CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构。这里cu就是指支持GPU运算,也支持CPU运算。反之是cpu,即是只支持CPU运算喽。
  3. cp37指python版本3.7,win指windows系统。

  从 https://download.pytorch.org/whl/torch_stable.html 可以看到(Py)Torch和torchVisione各有许多版本,按多个维度分:OS平台、Python版本、cpu/cu。我该如何挑选版本?我是在官网上的“可视化”配置的。

 可以看到,torch 1.5.0 搭配 torchvision 0.6.0 。之前我就是照着执行这条命令失败的。现在我可以去下载两个whl文件了。

cu102/torch-1.5.0-cp37-cp37m-win_amd64.whl

cu102/torchvision-0.6.0-cp37-cp37m-win_amd64.whl

是的,这次我接受了官网的推荐,选了最新稳定版。还有一个原因,我对比过其它几个版本,就是torch的cu102版是800+MB,而cu92是600+MB。反正都很大,不介意大一点了。torchvision就很小,不到2M。

关于Python的虚拟环境

另外说一下,由于多次安装失败,不知道环境有没有被毁坏或污染造成不稳定。我是在Python提供的虚拟环境中安装的。关于虚拟环境网上有不少教程。但我还是要补充几点:

  1. 创建虚拟环境python.exe可以,py.exe也可以。好像没区别,所以自然是用短的方便。
  2. 调用activate(.bat)来激活(进入)具体的环境,其实是设置了一些环境变量,而且修改了 命令行提示符(prompt)。所以是一种临时的设置,不管有没有退出(deactivate)虚拟环境,命令行窗口退出就没影响了。所以一般不需要调用deactivate,只有当想进入另一个虚拟环境之前才需要调用deactivate。新的命令行窗口运行后,并没有进入任何一个虚拟环境。
  3. 虚拟环境不仅对那个文件夹下的python.exe有效,对全局只有一个的py.exe也有效。对pip同样有效。所以在虚拟环境中升级pip后,仅仅是升级了虚拟环境中的pip。
  4. 建议都在虚拟环境中玩python,特别是要玩PyTorch这种大型的组件(框架),必须在虚拟环境中,用完可以清除干净。

推荐最佳文章

  最后,网上找到不少《一小时学会pytorch》的文章,内容基本是相同的,源自同一份。经过对比,这份最佳:https://blog.csdn.net/weixin_41070748/article/details/89890330 。原因:

  1. 有些文章的图显示不出来,这份能正常显示。
  2. 有些文章的部分文字残缺,这份内容全。
  3. 许多文章的代码注释也全是英文的(文章翻译自官司英文),这份在保留英文注释的基础上,还加入了译者的中文注释,赞。这里的中文注释不是对英文的翻译,而是译者根据读者可能理解上的难点进行讲解,对初学者太重要了。

  最后,祝你我都能学成,用来解决问题。

原文地址:https://www.cnblogs.com/BillySir/p/12832776.html