千里之行始于足下,这个道理可谓是人人皆知。作为AI从业者,熟练掌握PyTorch的使用技巧是每个人最基础的技能。但是有很多人觉得,在AI里面数学知识最重要。其实不然,我倒觉得PyTorch更重要,因为我认为PyTorch是数学知识的封装,它本质也是数学,但是它离我们更近,更容易学会,更容易应用。
相对于PyTorch而言,学习数学更像是纸上谈兵,你微积分学得再好,你会在工作和生活中使用到吗?肯定很少的。但是,你可以用PyTorch很随意写个demo,然后使用backward函数,如此简单的操作,你就在使用微积分(链式求导),所以在深度学习领域,学好PyTorch才是最重要的事,而且与学好数学并不矛盾。
我一直强调PyTorch很重要,大家一定要学好它。万事洞明皆学问,玩转PyTorch就是一门学问,有多少人能体会熟练掌握PyTorch带来的好处呢?估计人不多吧。很多人的重心在算法设计和网络模型方面,因为是想出论文或专利,导致在工程和动手方面欠缺很多,所以对PyTorch看的不是那么重,抱着“会用就行”的态度。
有位读者粉丝留言:大佬,谢谢你在文章里反复强调了我们一直以来都知道却一直都害怕去实践的常识性方法,现在我不怕了。能让更多的人认识到学好PyTorch的重要性,我觉得已经很知足了。
新手入门PyTorch,我觉得应该做两件事:
第一件事是多看看PyTorch的官方文档以及PyTorch的API文档。这是最权威的资料,平时没事多看看。毕竟这些东西很多,不必一下子强求自己看很多,慢慢来就行。
第二件事就是看看《PyTorch面试精华》,这是一本电子教程,写的很全面很系统,而且更新很及时,比其他的各种实体书更全面更权威一些。
做好这两件事之后,你的PyTorch水平一定很不错了。凡事都有正确之路,正确之路看似费时费力,可最终走下去你会发现走正确之路才是最轻松最高效的方式。亲测有效,否则不敢枉谈以免误人子弟。
学习PyTorch,应当多看看它的API文档。PyTorch API文档,如同一座金矿,等着我们去开采,下面给大家分享一下我的个人经验。
常言道,书读百遍其义自见,只有看得多了才能发现门道。PyTorch API总共分为几大模块:
(1)torch模块。这是针对tensor进行全局设置的模块,毕竟tensor是pytorch的核心,主要常用的函数有:全局设置tensor的类型,全局设置tensor的device,全局设置打印tensor的精度等。另外,在torch模块还有生成tensor的各种函数,包括:随机生成符合正态分布的tensor,随机生成指定大小的tensor等。最后,在torch模块还包括序列化tensor的save和load函数。torch模块如同是开胃小菜,品味tensor特性,勾起众人食欲,为下面的正餐做准备。
(2)torch.nn模块。这个模式是pytorch搭建神经网络的百宝箱,包括卷积层,池化层,dropout层,归一化层,全连接层,rnn层等。另外,还包括各种loss函数。如果说,torch模块是开胃小菜,torch.nn模块则是晚宴的正餐,值得每个人去品味。
(3)torch.autograd模块。这个模块本该是pytorch正餐中的核心,但是官网介绍的漫不经心,让人读起来干瘪无味,我记得旧版本的pytorch文档中有个地方讲解的很好,推荐给大家看看:PyTorch自动微分
(4)torch.nn.init模块。此模块可以当做pytorch正餐之后的甜点,值得花费点时间去慢慢品味,这个模块主要是讲网络参数初始化的。
最后,给大家奉上PyTorch官方的API接口文档,欢迎大家去学习:PyTorch官方的API接口文档