找回密码
 立即注册
查看: 547|回复: 5

准研一,导师让学习pytroch,之前没接触过机器学习,是直接学pytorch还是先学机器学习?

[复制链接]

1

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2023-5-8 10:07:44 | 显示全部楼层 |阅读模式
准研一,导师让学习pytroch,之前没接触过机器学习,是直接学pytorch还是先学机器学习?
回复

使用道具 举报

0

主题

1

回帖

15

积分

新手上路

积分
15
发表于 2023-5-8 10:08:01 | 显示全部楼层
Pytorch是一款机器学习/深度学习框架,换句话说,它的出现就是为了简化机器学习的实现过程,是一款用于机器学习的工具。
所以,从顺序上肯定是先有一定的机器学习基础,然后再学Pytorch。
至于机器学习要学习到多深,根据自己的目标而定,如果是希望长期深入投入这个领域,系统的学习一下机器学习是有必要的,毕竟总会用得到。如果想速成Pytorch,简单的了解一下机器学习流程也是可以的。
要想轻松学习pytorch,首先要对它有个大致的了解。
pytorch听上去非常高大上,其实再简单不过。
你可能没用过tensorflow、pytorch、mxnet这些深度学习框架,那用Python的时候应该用过matplotlib、numpy、pandas、sys、os...这些非常基础的工具包吧?
没错,他们其实就是一类东西。
深度学习框架是研究人员和数据科学家用来设计和训练深度学习模型的工具包,这些框架的出现让开发者无需深入研究深度学习、神经网络和机器学习的算法就可以训练他们的模型。
换句话说,如果没有深度学习框架,同样可以实现模型的训练,只不过,需要深入理解卷机卷积、损失函数、dropout等基础算法,然后用Python或者C++等语言逐步的实现这个过程。
显然,这是耗时耗力的工作,每次训练模型,都需要从头至尾重新实现数据处理、模型搭建、模型训练、模型验证。
于是就有了深度学习框架,这些框架为通过高级编程接口设计、训练和验证模型提供简单的构建方式。而且,在此基础上PyTorch、TensorFlow、MXNet 等广泛使用的深度学习框架也可以使用 GPU 加速库(如 cuDNN 和 NCCL)来提供高性能的多 GPU 加速训练。这让开发者和研究人员的工作量进一步的得到了解放,还大大的提升了效率。
了解了pytorch是什么、干什么用的,下面再学习就简单多了。
关于pytorch学习,推荐采用官方文档+开源项目的学习方式。
首先,通过官方文档了解pytorch每一个模块的功能与用法,然后再通过跟着开源项目实战提升熟练度。
官方文档

不仅针对pytorch,对于计算机领域的很多方向都适用。
学习一项知识时首先看一下有没有官方文档,这是最权威靠谱的,而且还免费。
如果英语水平不错的,可以直接看官网提供的英文版文档:
PyTorch documentation — PyTorch 2.0 documentation作为一款发展多年且知名的深度学习框架,pytorch的社区生态已经非常完善健全,官方文档也非常丰富完善了,有很多在官方英文文档的基础上进行翻译的中文版文档,对于英语水平有限的同学比较友好:
主页 - PyTorch中文文档

开源项目

Github是一个名副其实的宝藏库,不同领域、不同编程语言的项目应有尽有。
在学了pytorch的基础之后,需要加深理解、提升熟练度,找一些开源项目练练手是最好的方式。
不过,GitHub项目多如牛毛,找到合适的也有一定难度,这里给大家推荐一些我收藏的一些项目。
pytorch-tutorial


这个项目对于基础薄弱的同学非常友好,它提供了pytorch学习过程中的教程代码,而且,大多数模型实现过程不超过30行代码,理解非常简单。
内容涵盖基础知识(线性回归、逻辑回归等)、中级(卷积神经网络、循环神经网络等)、进阶(生成对抗网络、风格迁移等)。
目前项目在GitHub上已经26K+Star,质量自然不在话下。
Awesome-Pytorch-list


目前14K Star,这个资源可以称得上是大合集,包括计算机视觉、自然语言处理、教程和示例、优秀文章的实现,非常全面。
<hr/>推荐阅读

如何更好的使用git管理代码?如何将两张PDF页面拼接为一页?hello,大家好,我是Jackpop,重点大学本科毕业后保送到哈工大计算数学专业读研,有多年国内头部互联网、IT公司工作经验,先后从事过计算机视觉、推荐系统、后端、数据等相关工作。如果同学们在升学考研、职业规划、高考志愿、简历优化、技术学习等方面有困惑,欢迎大家前来咨询!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

1

回帖

12

积分

新手上路

积分
12
发表于 2023-5-8 10:08:43 | 显示全部楼层
欢迎关注公众号【Young样说】,回复“抽奖”参与免费送书活动!
要学咱就一起学
用pytorch实现SVM,gradient boosting decision tree?
用pytorch实现gaussian mixture model,t-SNE?
用pytorch实现kernel kmeans,gaussian process?
用pytorch实现variational inference,MCMC?
统统安排!
这里推荐一下我的新书,主要讲解PyTorch高级机器学习算法实战应用。
本书主要介绍的是机器学习领域经典的算法内容,以及相关原理所涉及的基础知识。这部分内容一般出现在研究生阶段的进阶课程中,是深入研究机器学习领域必备的核心知识同时本书的一大特色是不止停留在单纯的理论算法介绍层面,更强调动手实践应用。为了方便读者实现,本书采用了PyTorch这一当前最流行的机器学习框架,实现所有的算法过程。PyTorch之前更多是应用在深度学习领域,可以实现深度神经网络的训练运算等过程。本书则利用了其完善的科学运算矩阵库,灵活的自动微分求导引擎,以及方便的GPU加速运算等功能,向读者展示PyTorch框架在机器学习其他领域也有着广泛的应用。
本书讲解了经典的高级机器学习算法原理与知识,包括常见的监督学习、无监督学习、概率图模型、核方法、深度神经网络,以及强化学习等内容,同时更强调动手实践。所有算法均利用PyTorch†算框架进行实现,并旦在各章节配备实战环节,内容涵盖点击率预估、异常检测、概率图模型、变分推断、高斯过程超参数优化、深度强化学习智能体训练等内容。

本书附赠所有案例的源代码及各类学习资料来源,适合具有一定编程基础的人工智能爱好者学习,也是相关从业者和研究人员的学习指南。


















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2023-5-8 10:08:55 | 显示全部楼层
只问一个,想读博么?如果要读博,建议别看什么机器学习西瓜书了,研三上申博士,研二结束至少得发个两篇吧,论文送审也很长时间的,研一基本就得有思路开始准备做了。
说实话,计算机这个东西,大家都开源的,而且时代飞速发展,和基础学科不一样,那些东西你十年二十年都不会变的,学了就学了,而且你也不会让一个数学系研究生从研一开始学高数不是。在计算机领域,不跟着最前沿的东西看,你从基础学,追不上最前沿的,那谈何发论文?去年clip刚出的时候,我们组里想跟进做点工作的,结果上海封市了,停了两个月,clip已经不行了,dalle2出了,又过了两个月,chatgpt也出了,这些年ai界的成果是以月计的,甚至前年vit刚出的时候,跟进都是按天出的,你说你还从头学机器学习,哪里这么多时间给你补基础?
且不说深度学习基本都来源的,你拿了模型之后,搭积木的结构改起来并不吃力,也不算深度学习现在基本用的都是transformer的结构,你之前的cnn,lstm读来读去其实能用到现在的东西并不多,更别说机器学习里的算法都是sklearn集成的,一行代码就解决了,你在那儿吭哧吭哧搞半天效果还不如别人调库。
计算机能不停发展的原因就是一个理念,不要重复造轮子,所以前人不断把东西集成简化,就是希望后人可以在他们的肩膀上走更远,你在哪儿说不行,我就要自己造轮子,我还要连路也一起修了。那我再说一句,你造完轮子过了几天,真的还记得轮子怎么造嘛?
我不知道为啥这么多老师都让学生从基础学起来,我现在研二,研一的时候上学期在学运筹学,后来里面的数学有点过于难了,琢磨了半年没想到啥写论文的idea,下学期转学深度学习,两个月啃西瓜书,把所有的公式手推了一遍,可以自己算svm,两个月学深度学习基础,发现花书上的代码都work不了,各种版本问题导致的bug,然后自己开始github找基础模型自己写,从头搭了resnet,vgg,googlenet等等一堆基础模型,但是有什么用?等我研二真的开始做科研了,准确的说是研二组里来了个比较热心的博士,会主动教学怎么做科研之后,我才发现去年一年干的事都是在浪费时间,研一新入学的学弟一个暑假看得已经比我前面了,他们聊的都是什么st,扩散模型,什么多模态任务,我就觉得太可惜了,要是早一年知道,我现在这时候应该已经写了三四篇论文了,而不是和现在一样,刚刚投完一篇第二篇刚开始写。
当然,如果你的目标只是毕业找个工作,对论文的要求只要能毕业,研二研三准备找实习的,我觉得依旧不用看,研一好好玩一玩,享受一下剩下不多的学生时光,多认识一些异性谈谈恋爱就好了,毕竟毕业工作之后,一个计算机的程序员,可没什么空闲时间,也没什么机会接触学校这么多异性了
回复

使用道具 举报

0

主题

1

回帖

2

积分

新手上路

积分
2
发表于 2023-5-8 10:09:36 | 显示全部楼层
省流:稍微入门pytorch之后,尽快找idea,发论文。
pytorch是框架,但你应该知道一些基本的机器学习知识。
~修改线~
第一步,看吴恩达机器学习课程,b站就有,注意要写课后作业,但是有一些需要用到TensorFlow1.x版本,要是安装不了就算了(其实很多导师都会推荐这门课程,毕竟省心)。补充:其实吴恩达老师每一节课程讲的都很少,要是有同学有这种感觉,建议这里第一步和第二步一起进行,也就是看完课程,去看西瓜书对应的部分。另外,刚刚开始的梯度下降,svm,pca等一定要手动推导。如果看不惯英语,听说李宏毅老师的课程也不错,不过我没有听过,所以说大家按喜好选择就好。
第二步,看西瓜书(机器学习,清华出版社),了解一些基本的数学原理,可以配合b站的白板推导系列。补充:这步是为了进一步了解数学推导,如果各位觉得时间很长,那么可以不必要长时间停在这部分,直接下部分就行。
第三步,看李沐的动手学深度学习,这里教你如何使用pytorch搭建经典论文模型。pytorch一定要直接上手,写十来个小模型就基本上熟了,你要是像c++,Python一样,学完语法再一个个写,直接劝退了。补充:有朋友觉得这个课程很难,也有朋友觉得这个适合自己,所以说,看自己能不能接受,其他的pytorch课程也很好,但是我还是建议直接啃代码,一步步调试自己才能理解。
第四步,按照研究方向,看对应的综述文章。这主要是为了了解这个方向有哪些方法,需要一个个都看论文,代码就不看了,太多了,看三个经典的就行。注意:这里说代码看几个经典的就行,但是不要太老,因为太老容易有环境问题。论文是需要每一篇都要看的。
第五步,看完综述,直接就找最新的顶会文章,开始复现。选择能复现的,性能最好的模型作为你的baseline,最后直接在上面改就行了。(复现结果就行,要是无代码复现,那么太难了,建议作为进阶玩法。)
第六步,看大量的论文,无论什么方向。你先看文章的摘要,你觉得论文提出的创新能看得懂,那就继续看下去,不然直接pass。反复,直到找到你看起来很猛的文章,然后把该篇文章的方法尝试放到baseline里面,观察性能变化,可视化结果,看看能不能放到这个模型中,并且随时进行调整。
第七步,要是性能有提升,那就将他确立为你的创新点。没有提升就直接pass。
第八步,等你攒够两个创新点,直接找老师,看看能不能发一篇中文期刊。
第九步,要是同意,那就直接走一遍论文从写作到终稿到修改到拒稿到修改到中稿的过程...
不同意,那就再找创新点,重复以上步骤。
新生,一定要先把步骤走一遍,别说发顶会顶刊,一篇北大核心,老师同意就发。哪怕这个文章写完自己看了恶心两个月,精神萎靡,食欲不振,怀疑人生,胡言乱语,无欲无求...那也无妨。
看似知乎人手一篇Natrue,science。没有二十篇IEEE trans期刊都算是垃圾一个,但是对于一个新手小白而言,知道怎么找idea,做实验,水论文(×),写论文(✓),才是最重要的,文章投那里不重要,因为只要你以最快速度做一遍,之后你发paper的速度会越来越快,等你熟了,一个月水一篇(×)。
只要能发,什么问题都不是问题 。

~分割线~
评论区也有朋友指出我得这个学习路线不大好,那么我也统一说一下。这个是我没有太多指导下,自己走的一条路径,结果证明,研一下基本上能出一篇普通文章,要是你的老师足够厉害,那么更好的期刊也能发,毕竟好期刊基本上和老师关系比较大,和学生的关系不是特别特别大(大佬别喷,我个人认为,没有老师指导很难投好期刊,但并不是所有人哦!)。
对大家合不合适我不好说,但是你要是没人指导,想先学的啥东西垫着,这算是一个参考,如果不合适,那就换另外一个方法就是了。
如果能帮到大家,这篇回答就算有价值了(手动狗头)。
回复

使用道具 举报

0

主题

1

回帖

19

积分

新手上路

积分
19
发表于 2023-5-8 10:10:00 | 显示全部楼层
个人经历:
第一阶段:机器学习搞本书看看,深度学习搞本书看看,入门阶段,不求甚解,只求在理论上有个整体概念和感觉。入门书籍推荐:ML《西瓜书》和《统计学习方法》选一本儿,当然最好都看;DL《动手学深度学习》是个不错的选择,《花书》可以看看前九章。大概时间:2~3周
第二阶段:搞点代码跑起来,找点实践感觉。比如咱们前面看了逻辑回归,这时候就可以找点逻辑回归的代码瞅一瞅,看看这鬼东西到底在干啥。同样的,不求甚解。大概时间:1~2天。
第三阶段:
学习pytorch或者tensorflow,要系统。但是同样的,不求甚解,不要纠结于细节之中。大概时间:1~2周。
第四阶段:
根据个人兴趣或者实验室方向选择一两个小方向,实践起来!可以先去github上找找相关方向的项目,跑起来,调起来,改起来。这一阶段,不要广,要精,一通百通。搞得了小方向里的经典项目后,再学其他新东西就会容易很多。理论上搞不懂的就回顾和夯实第一阶段,实践中搞不懂的就多调试,多Google。大概时间:两周。
第五阶段:
全面了解领域内的经典、SOTA,尝试魔改,运气好的话搞点paper是极好的。大概时间:运气+努力,看命。
第六阶段:
相关方向都了解一下,没事儿回顾一下第一阶段,追追前沿。大概时间:唉,没完没了。
第七阶段:
卷不动了,放弃治疗。大概时间:要不是贫穷,我可以一直躺。
纯个人经历,请谨慎参考。另外,一和三可以换,关键是不求甚解,前三个阶段主要是为了有个整体感觉,怎么爽怎么来。后面实践时再慢慢深化即可。
如有疑问,欢迎咨询~
推荐阅读:
我们最近开源了一个文本分类项目,用来入门NLP和pytorch都很不错,欢迎关注和共建!
【OpenNLP/OpenTextClassification】文本分类系列03:OpenTextClassification项目正式开源了!这可能是目前网上最全面的文本分类开源项目!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-9-20 00:51 , Processed in 0.062685 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表