天天看点

从零掌握深度学习框架PyTorch

作者:修炼IT基本功

学习PyTorch有一段时间了,在闲暇的时候也看了深度学习相关的一些书籍和视频,目前对PyTorch深度学习框架有了一个比较相对模糊的轮廓,可以看懂一些框架的源码,例如YOLO,Transformer等等,同时因为今年AIGC和ChatGPT的流行,越来越多的程序员开始主动学习PyTorch,所以我也想利用自己业余的时间和大家一起学习PyTorch框架,完成一些基础和一些小例子的代码编写。其实也是自己学习的一份记录,和大家一起分享这个学习的过程。

从零掌握深度学习框架PyTorch

最近发现一个入门的PyTorch的网站:https://www.learnpytorch.io/ 大家有空可以一起学习,我也打算一遍看一遍体系地重头学一遍,一方面是兴趣,一方面也是一个技术积累,说不定哪一天工作上就实际需要呢。

从零掌握深度学习框架PyTorch

这个自学路径也是和这个网站一样,先把这个网站里面的内容过一遍,然后也会手敲一些经典的深度网络模型和应用实例,当然学习一起学习这个课程也是有一定的前提的,以我个人经验,主要有如下的一些前置准备:

  • 有一定的python基础,个人觉得有一些编程基础就可以,python可以带着学,其实我就只有java和go的基础,python遇到的语法糖可以遇到一个学一个。
  • 有一定的机器学习的经验和基础知识,如果有这个知识确实是事半功倍。
  • 有一定使用jupyter notebook的经验,我觉得这个就非常简单了,就是安装好python后pip install jupyter notebook或者pip install jupyter lab 其实感觉都差不多,前期在没有很好的python的使用技巧的时候,千万不要沉迷与配置conda或者python的虚拟环境,一般来说学习编程语言前期还是多实践,千万不要被环境或者细节所卡住。
  • 最重要的一点就是持之以恒的兴趣和动力。

最后,我们应该如何一起学习这门课程,我觉得确实如文中几点所说:

  • 持之以恒地动手写代码,不断地写代码,不能仅仅只看视频或者书籍,要动手,这个确实是最重要的,最终你写这个代码就觉得和吃饭一样简单,否则很容易半途而废。
  • 多做实验,简单地说就是去尝试,去修改相关的逻辑,而且还能确保代码能够跑通,结果并不是很重要。
  • 可视化,尽量把深度模型的框架流程图或者数据集的分布,出入参能够可视化,通过可视化,可以方便你去掌握相关的细节。
  • 多问一些相关的问题,并且和大家一起分享相关的问题,这样才可以一起进步。
  • 还有一个就是不断地重复,我记得我看一个diffusion的原理入门视频我看了4~5遍才有了一个初步的理解,因为自己毕竟非科班出身。
从零掌握深度学习框架PyTorch

接下来和大家简单聊聊我目前认知中的深度学习,感觉就是找规律。或者说找到某一种分布,与以前学习golang和java语言一样,不管是写传统的业务代码还是写一些中间件,你是明确知道你的输入和控制条件,然后通过编写代码,得到我们想到的结果。而深度学习则是告诉模型,我们已有的输入和想要的输出,让他自己把里面的if else,或者循环,过滤,转换等操作,得到我们最终的结果、一言以蔽之就是“找规律”。但也不是不给任何提示,就像我们可能需要给出成千上万的正确地“输入输出对”才可以让模型找到其中规律。

从零掌握深度学习框架PyTorch

接下来我也尽量一周一更新,和大家一起学习深度学习,先从最基本的PyTorch的一些常用API讲起,当然这些API也特别多,但是这个网站的课程比较好,通过我之前学习这些知识的“后验”经验,可以和大家一起先了解一些比较重要的API,然后快速实践,最后以点串面,形成一个完整的体系。最后我们能够看懂yolo,diffusion,VAE,GAN,Transformer的源码知识,当然前期我们需要一起去学习基础的网络架构也能够去实践一些比较常见的项目,不管我们是调用API还是外国人经常说的“from scratch”等一些说法,我们可以持续进行学习。

从零掌握深度学习框架PyTorch

“用我们最原始的兴趣和持续有趣的学习输出,支撑我们去学习完这个课程”,如果大家有兴趣,可以加一个关注,我们持续一起学习,下一个小节,我们将了解什么是PyTorch框架和PyTorch框架中常用的API。

从零掌握深度学习框架PyTorch

大家一起加油

继续阅读