Giter Club home page Giter Club logo

baidu_paddlepaddle's Introduction

7 Days in Baidu PaddlePaddle learning 百度飞桨学习七日谈

短短七天时间,其实对于任何学习而言都只是轻描淡写的一瞬,但是对于初次接触深度学习的我而言,似乎却是一段漫长的回忆。

其实两三年前就曾经尝试这方面的学习,但无论是自学相关文档还是在Coursera上的吴恩达大神课程都把自己弄得一头雾水昏昏欲睡快速放弃,没想到这一次却能耐下性子跟着百度学了整整七天,在这点上是需要感谢百度的课程设置的,由浅入深的课程安排和与新冠疫情息息相关的内容都会让人愿意深入其中。

这次的课程其实更像是百度在PaddlePaddle项目上的一次推广,因此整个课程中你不需要在代码层面过分纠结,百度在为期七天的课程中为你提供了足够的代码框架和学习模版,如果你愿意自己多花点时间去研究,你就可以让你的深度学习模型按照计划运行起来,每天晚上8点守在电脑前等着导师上线,再一抬头往往就已经半夜,这种晚自习的感觉已经很多年没有出现过了。

七天时间远远不足以能码出全套完整的深度学习代码,但是七天时间却可以让你对深度学习的框架有一个基础的了解,而这个了解往往是未来对于新鲜事物和深度学习的渴望与敢于尝试。

简单回忆一下七天的实操,就能够看出百度在这次的入门课程上的用心,因为在GITHUB上我也会放上自己课程中的代码,所以在文字部分就不做赘述,同时尽量避免太多的专业词汇,便于和我一样的小白们能够树立学习的信心:

第一天:新冠疫情可视化

作业一:要求自行完成百度飞桨的本地化安装 作业二:Python爬取当天丁香园公开的统计数据,根据累计确诊数,使用pyecharts绘制多样式疫情图形,包括动态地图、动态饼图、动态折线图等。

第一天的作业相对而言并不是什么难事,相对熟悉Python就有一定的把握自行完成作业,只是在Docker虚拟化安装百度飞桨上费了点时间。

百度在数据可视化处理中引入了pyecharts内容,之前并没有使用过这套库,pyecharts是一个用于生成Echarts图表的类库,Echarts是百度开源的一个数据可视化JS 库。

画外音:对数据可视化有需求的朋友可以尝试一下这个库,用Echarts生成的图形可视化效果不错,未来在自己的实际数据分析工作中,又多了一个利器。

第二天:手势识别

从第一天到第二天,学习坡度陡增,直接就进入了全面的深度学习框架中,这一天的要求是补全代码并且自行调参优化提高识别精度,“一二三四五六”的手势看上去简单,但是刚刚跑出来的结果却是完全不尽如人意,在这个部分,使用了DNN进行模型实例化,这些之前停留在书本和课堂里的知识在变成实操之后,似乎更加容易理解了一些,当然,大部分代码都是百度为学员准备好的,你所需要做的只是进一步学习DNN,并且补充少部分代码即可运行,当然在调参方面就要考验个人的积极性和经验了,但通过这种简单模型来进行学习,的确是一件很好的方式,当你跑完一轮又一轮,拿着不同的结果和数据,重新回头看完整的代码时,会引发你更多的思考。

画外音:没有什么手势要比潜水手势更复杂了,所以当完成这一轮学习之后,如果能够将潜水手势带入到这组模型中,不知道会有怎样的挑战,不会CODE的潜水长不是一个好潜水员。

第三天:车牌识别

完成第二天的课程之后,坡度略平缓,毕竟你已经见识到了一个完整的深度学习模型,第三天的挑战就从简单的手势动作,变成了完整的车牌号码,难度是有的,但是信心已经在第二天的坡度陡增中被带出来了。第三天的LeNet模型相对第二天更加复杂,但同样百度准备好了绝大部分的代码模块,只要你学习了相关模型的知识,在导师的指导下还是可以完成代码补全并且顺利运行,至于调参和训练只要有耐心,同时能够抢到为数不多的GPU资源,你的成绩就不会太差,在这里需要强调一下,百度的课程中为学员免费提供了CPU和GPU两个环境,多数情况下CPU环境可以跑完,只是会慢一点,但如果你抢到了GPU资源,那么“必先利其器”的快感会油然而生。

画外音:车牌的识别相对于手势更具挑战性,当你完成这个课程之后,相信每次进出无人停车场时,你都会回忆起这一天的课程和你为了识别成功所做出过的各种尝试。

第四天:口罩分类

第四天的口罩分类采用VGG网络结构,相对于第三天的车牌识别而言理论难度又有所提升,你所需要补全的内容相对于前三天而言更多了,但是习惯了前三天课程之后,实际应对性已经和深度学习模型已经被调教到了一个新的高度,无论是调试熟练度还是积极性上都有了明显的不同。虽然依然无法自己码出整段整段的模型代码,但是在线搜索API和文档,阅读并且理解的空间明显相对学习之前有所提高。从这一轮所有同学的训练精度就不难看出,大家沟通的点也从最初的python报错纠错变成了各自调参的心得体会。

画外音:希望疫情能够早日过去,从第一天带上口罩到今天这个时刻已经过去接近百天,希望这个深度学习模型此生再也不被应用,改成微笑识别才是正道。

第五天:人流密度测试

当你熟悉了基本的深度学习网络之后,你会发现除了代码部分,实操中更重要的部分其实是调参和训练,第五天开始的比赛是基于画面中人流密度识别需求设定的,这一天的课程导师给予了所有的代码,你所需要做的全部工作就是调参与测试,不同的人又不同的调参手段和方法,大家各显神通,排行榜热闹非凡,这或许就是学习的快乐所在,而深度学习这个部分并不同于传统编程感觉,传统时刻你是带着目的去实现的,而在深度学习中,你似乎是在培养一个属于自己的孩子,看着他不断的成长。

画外音:这个比赛大概跑了不下二十轮,不断的调参不断的修改,比赛成绩和排名其实在你完成测试时并不知晓,只有当你上传你的测试结果并刷新排行榜,你才知道你的最终得分和排名会是多少,很有趣的一次体验。

第六天与第七天:关于Paddle的更多

当你熟悉了复杂的深度学习网络和各种大段大段的代码块之后,突然看到PaddleHub和PaddleSlim时,你会有一种魔幻的感觉,通过API调用的方式去实现代码精简和效率提升,这应该是所有人都希望看到的事情,其实人流密度测试中就已经采用了这个部分,只是你需要完成相关知识的学习之后,回头看到比赛才会有一种恍然大悟的感觉。其实前面的课程都是铺垫,这两天的内容才能看到百度的不同,这其实和我们这次的学习曲线非常相关,你或许无法写出大块大块的神经网络代码,但是如果你了解各种网络的特性,通过PaddelHub的预训练模型和分类,一行代码完成模型预测,十行代码完成迁移学习,这才是推动更多人参与到深度学习的关键所在。

七天转瞬即逝,在这七天时间里对于深度学习从敬畏远眺变成大胆实操,这是需要感谢导师在课程上的精心安排的,假设如果这个课程过于理论,相信会有不少人和我过去一样很快就击鼓而出,但这一次绝大部分人都坚持到了最后,并且对于深度学习有了全新的认知。只有越来越多的人了解深度学习,通过各种各样的方式参与到深度学习中,才能真正将深度学习带入到一个更高更广的层面上,对于人类起到正面帮助的作用。

这七天的学习像极了育儿的过程,作为父母,有生有养,不断的调参训练像极了刷题考试,像极了人生一个个阶段,不同的是你能看到一个个数字量化的结果,一次次一轮轮,同样用时间来衡量,或长或短,或成或败,但最终总是相对趋好,只是想要登峰造极,除了天赋,还需努力。

人生或许没有多少个十年,但七天有不少,用七天去了解一个事物,就值得。

baidu_paddlepaddle's People

Contributors

dev-xia avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

gt-acerzhang zirv

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.