gitbook/PyTorch深度学习实战/docs/465858.md

90 lines
9.6 KiB
Markdown
Raw Normal View History

2022-09-03 22:05:03 +08:00
# 结束语|人生充满选择,选择与努力同样重要
你好,我是方远。
固定的打招呼开头,但是这节课却是咱们这个专栏的最后一节课了。感谢你一路坚持学习到这里,现在有没有感觉要解放了?哈哈。
不过解放之前,让我们一起快速回顾一下这门课程咱们学了什么,我也会像电影点映后的发布会那样,顺便揭秘一下,我为什么要这样讲。
咱们的课程核心是PyTorch实战但是实战就跟习武一样得先挑几件趁手的兵器要不只能秒送人头。
正所谓“工欲善其事必先利其器”所以在最开始的时候我们并没有上来就聊PyTorch本身而是讲了如何使用NumPy工具还一起研究了Tensor的数据结构。
如果你是一个算法工程师很容易就会发现在非常多的场景下都有NumPy的出现因为无论从数据操作的便捷性、友好性还是通用性NumPy都是强大到没朋友。就算你以后不用PyTorch开发甚至不做深度学习开发NumPy也是你躲不开的宿命。所以我希望你在以后的学习中对于NumPy以及Pandas的内容还是要多多关注。
而我们之所以要花不少篇幅来学习Tensor也是因为它的通用性。不过咱们以前都习惯了dict、list、set这样的数据结构以及NumPy中ndarray这样的通用数据处理格式忽然转变操作数据的方法肯定是有一个适应的过程特别是像数据切片、数据变形、维度变化这样看不见、摸不着的操作你感觉一个脑袋两个大也是很正常的。
我想和你强调的是Tensor玩转了之后在以后的深度学习开发中无论你使用PyTorch还是TensorFlow亦或是未来新出来的框架都可以让你快速上手从青铜迅速变王者。
掌握基础工具的使用,就如同选好了一把大宝剑,接下来就得学习训练模型所需要的招数和心法了。深度学习常用的内容比如卷积、损失函数、优化函数、梯度更新都是重中之重,甚至可以说是缺一不可了,咱们花了不少篇幅来细致地讲解其中的知识点,相信你现在应该也到了张口就来的地步了。
为了聚焦重点其他类似全连接、池化等简单的结构咱们则是简要带过你有兴趣可以课后了解毕竟咱们要快速上手的。既然是实战咱们就要从实际、客观、高效的角度去借鉴前人的工作成果于是例如Torchvision、可视化工具、分布式训练方法等内容可以让我们少绕弯路直达目标。
兵器也有了武功也会了就得出门下山历练了否则光说不做就全成了嘴上功夫。每一个成就的解锁都需要我们挑战一个个艰难的任务所以我特别为你安排了图像和文本算法任务这两个大Boss。
细心的同学不难发现在每个任务开始之前我都会向你介绍这个大Boss的背景比如在NLP部分我先向你介绍了NLP领域的几大内容、常用算法等这样你才能更好地理解任务的目的和解决思路。
当你完成了整个课程就相当于完成了习武历练的过程从此以后你就可以独立完成基于PyTorch的深度学习Pipeline了是不是非常棒
![图片](https://static001.geekbang.org/resource/image/08/7a/08b96da4677066769fe3e6246f70237a.jpg?wh=1920x1418)
但是这就是全部吗?**不是,还差得远。**
通过这样一个PyTorch的专栏最根本的目的不是让你知道如何使用它而是希望你借助它高效便捷地了解深度学习。这个[链接](https://pytorch.org/docs/stable/index.html)是PyTorch的官方文档。你会发现这里面的内容浩如烟海但是我们没有必要把它所有的函数功能都学会它是一个工具仅此而已。
所以临别之际对于即将踏上AI之途的小伙伴我有几句话想对你说简单概括是“五个保持”。
第一保持好奇。人工智能是一个更新迭代非常快的领域以前很火的内容可能没过多久就过时或者很少使用了比如之前的RNN之于现在的Attention。所以你一定要多看论文每年的顶会论文都是最好的学习资料。
后面我列出了CV和NLP领域的顶会供你参考。
![图片](https://static001.geekbang.org/resource/image/60/e5/6047de426d3c10c4cbe988bd9b8526e5.jpg?wh=1920x933)
看完这份清单,有心人自然知道去搜搜这些会议的时间。会议结束后,你就可以自行查找各种论文的分析介绍了,当然还是建议你尽可能看原版。不过哪怕你看不懂长篇大论的英文论文,没有关系,中文版本的论文分析介绍也不少,这样也可以提高。
除了这些会议还有不少是比较综合性的人工智能会议比如IEEE、ICLR等等你同样可以按需关注。
第二,保持平和。作为过来人,我想说,在以后的深度学习开发过程中,你会见识到各种各样奇葩的结果。
比如明明训练过程中各项指标都好好的一到预测环节就崩盘的情况。这都算常见的。再比如两张差不多的图片只因为其中一张多了几个色块或者形状导致最后的结果大相径庭这种case查起来就非常的“蓝瘦香菇”了。又或者你会因为业务提供的数据资源有限而苦恼要么量太少、要么太不平衡这些都是很难用技术的思路去解决的。
所以你要多多参与项目,多接触不同的场景,慢慢的……你就习惯了哈哈。当然,这不意味着破罐子破摔,而是随着历练的增多,你终会找到或者学到解决这些困难的办法。其实每一个深度学习算法工程师的成长,都是靠着一个又一个的狗血问题一路走来的。
第三保持谦逊。诚然算法工程师特别是深度学习算法工程师目前是IT领域第一梯队的存在也是好多IT人羡慕的工作但是一定要记住山外有山要多向别人取经多向前人借鉴才能让自己一直有足够的竞争力。
第四,保持童心。实不相瞒,我打小就想当超级英雄拯救世界,一直到今天也这样。这并不可笑,反而这是很真实的自我。保持童心,可以让你时时刻刻充满天马行空式的想象,而**AI领域从业者最大的限制恰恰不是技术而是想象力**。
有了想象力你可以开发仿生的阿尔法狗你可以开发堪比艺术家的创作AI你可以心血来潮搞一个大变脸AI把自己无缝放入任何好莱坞大片中。在AI的世界你可以改变世界就可以成为真正的超级英雄。
还有一条,保持活力。这与技术无关,码农的秃顶、肥胖、腰间盘突出、前列腺炎、啤酒肚、油腻、格子衫……这些已经在网络上被黑了无数次了。其实这一方面是他人的刻板印象,一方面可能真的是咱们的现状。
我建议你跟我一样,能够经常锻炼,参加体育活动,工作之余来几个俯卧撑,下班之后撸撸铁,周六、日的时候约上三五好友,骑骑车、打打球。因为你的人生中,工作只占了非常非常非常小的一个比例,多出去走走,发现更大更好的世界。
![](https://static001.geekbang.org/resource/image/51/72/51d923cfaba3e9f1d736d2bd965f2072.jpg?wh=6068x3734)
五条“保持”我就说完了,还记得开篇词,我是如何高大上地介绍我自己的吗?其实还有一部分我没有说,现在我也愿意跟你分享出来。
作为一名80后其实小的时候电脑这玩意儿并没有那么普及。一般都是家里条件非常好的同学才会有一台大头机。所以那时候每周一节的微机课就成为了我们最期待的、事实上的“游戏课”。电脑对于我来说就是打打游戏查查资料看看电影仅此而已。
面临高考报志愿这个人生抉择的时候,我听了家长和老师的话,选了制造、自动化、土木相关的超热门专业志愿,分数差了几分没上去,调剂到了计算机,也算是阴差阳错。但之后随着对编程的深入了解,我越来越觉得自己喜欢上了编程,喜欢上了算法。或许是命中注定,我就应该走这条路。
再后来我发现这个时代是永远在快马加鞭发展着的人工智能将影响所有人的生活。所以我选择了AI方向。每个方向都有它独到的魅力而AI的魅力在于它是没有边界的就像绿灯侠一样。就像我前面说的那样**AI很多时候没有技术限制唯一能限制你的只有你的想象力**。
当然,学习和提升自己是痛苦且枯燥的,这个过程充满了复杂的公式,难缠的优化方法,还有玄学一般的调参经历。但是这种自我蜕变是极具成就感的:我参与完成的搜索引擎推荐算法项目,时至今日仍然每天在为数亿用户服务;我主导的资讯产品文本算法项目,同样为数以千万计的用户更高效地获取信息而默默运转着;我参加的多模态算法项目,为无数的儿童与青少年提供了纯净的网络环境……
好了,最后一课的鸡汤终于要登场了,请你记住:
**阴差阳错是一种选择**
**命中注定也是一种选择**
**自我蜕变更是一种选择**
**人生充满了选择,选择与努力同样重要**
时间过得真快,快到让我觉得第一节课也就是几天前的事情。时间过得好慢,慢到使我迫不及待地希望在更多的课程中与你一同进步。
下课,再会。
最后,我希望你可以填一下后面这张[毕业问卷](https://jinshuju.net/f/fUxWMD),说说你学习这个专栏的感受。