我的学PyTorch之路(1)
人工智能(AI)那么火,最主要是它能解决工作和生活中的许多问题。而我,一直没有入门。目前最大的AI两大框架是TensorFlow和PyTorch。看过不少文章,综合对比之后,我选择了PyTorch。但这种框架,需要有大段的时间静下心来好好学习。终于在这个五一,可以来学一学了。
PyTorch是什么
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
优点:
-
PyTorch是相当简洁且高效快速的框架
-
设计追求最少的封装
-
设计符合人类思维,它让用户尽可能地专注于实现自己的想法
-
与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
-
PyTorch作者亲自维护的论坛 供用户交流和求教问题
-
入门简单
结论:PyTorch更有利于研究人员、爱好者、小规模项目等快速搞出原型。而TensorFlow更适合大规模部署,特别是需要跨平台和嵌入式部署时。
安装的困难及解法
也不知道本次能“走多远”,有些东西学着学着就没有下文了,工作的原因,时间的原因,有时是懒。总是有些东西是半途而废了。按以往学东西和写文章的经验,我一般是学会后再“复盘”写文章的,这样思路比较清晰,读者也少走弯路。但我最近还得到另一个经验,写文章需要有激情,特别是内容长的文章。所以我这次决定边学边记。大家可以一起来学。希望我自己这次能学成这个宝贝武器。
进入正题。学一个重型武器,就像取经,要一路打怪升级,经历九九八十一难,方成正果。我的PyTorch学习之路的第一难就是安装。具体说是如何在我的Windows 10上安装PyTorch。不要以为装个东西总没有学编程那么难。这活难就难在:
- 官方资源都在国外,一言不合就请求超时。这个是重点。
- 平台多,这个我选windows就好。版本多,有点迷茫,不知道该选旧还是选新,还是中间哪个版本。后面我会讲本次的做法。
- 它不是一个组件,而是两个组件搭配,两个的版本如何搭配,没有指南。
- 其它,要仅支持CPU还是也要支持GPU?支持GPU就是算得更快,初学者需要吗?
先看了一篇《PyTorch 深度学习:60分钟快速入门》然后就准备试验上面的代码,当然先得安装PyTorch环境。Python我有安装,版本3.7。然后就是各种掉坑了。各种办法,别人能成功,我不能。改为阿里镜像、清华镜像。都不行。最后是这篇文章带我走出了坑。小白自学机器学习----3.令人头秃的pytorch安装 。我学到几点:
- 原来pip的安装包是whl文件,之前一直不知道。whl文件可以手工下载后,再本地安装。这种做法,对于国外的whl大文件,非常有用。
- PyTorch的cu92是指CUDA的9.2版本。CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构。这里cu就是指支持GPU运算,也支持CPU运算。反之是cpu,即是只支持CPU运算喽。
- 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提供的虚拟环境中安装的。关于虚拟环境网上有不少教程。但我还是要补充几点:
- 创建虚拟环境python.exe可以,py.exe也可以。好像没区别,所以自然是用短的方便。
- 调用activate(.bat)来激活(进入)具体的环境,其实是设置了一些环境变量,而且修改了 命令行提示符(prompt)。所以是一种临时的设置,不管有没有退出(deactivate)虚拟环境,命令行窗口退出就没影响了。所以一般不需要调用deactivate,只有当想进入另一个虚拟环境之前才需要调用deactivate。新的命令行窗口运行后,并没有进入任何一个虚拟环境。
- 虚拟环境不仅对那个文件夹下的python.exe有效,对全局只有一个的py.exe也有效。对pip同样有效。所以在虚拟环境中升级pip后,仅仅是升级了虚拟环境中的pip。
- 建议都在虚拟环境中玩python,特别是要玩PyTorch这种大型的组件(框架),必须在虚拟环境中,用完可以清除干净。
推荐最佳文章
最后,网上找到不少《一小时学会pytorch》的文章,内容基本是相同的,源自同一份。经过对比,这份最佳:https://blog.csdn.net/weixin_41070748/article/details/89890330 。原因:
- 有些文章的图显示不出来,这份能正常显示。
- 有些文章的部分文字残缺,这份内容全。
- 许多文章的代码注释也全是英文的(文章翻译自官司英文),这份在保留英文注释的基础上,还加入了译者的中文注释,赞。这里的中文注释不是对英文的翻译,而是译者根据读者可能理解上的难点进行讲解,对初学者太重要了。
最后,祝你我都能学成,用来解决问题。
博主简介:佘焕敏(shé),洋名 Billy Sir。
关注编程基础技术,并致力于研究软件的自动化生成。 对编程规范化、面向对象的极致使用也有着浓厚的兴趣。 同时非常希望能够写程序到65岁。
只有工匠精神,才能把常人觉得单调乏味的代码,当作作品雕刻成艺术品。
重点:这里几乎每一篇文章,都是我认真创作的,凝结了心血。写作从来都不是一件容易的事,对从小语文不好的我而言,是难上加难。而且,你发现没有,文中没有广告。这篇文章介绍了为什么要写这些文章。
![微信赞赏码](https://img2022.cnblogs.com/blog/33556/202211/33556-20221101085333455-1717538163.png)