作者:Daniel Bourke

发表时间:06/06/2020

翻译:方星轩

本文长度为5600字,建议阅读10分钟

本文通过作者参加TensorFlow的资格考试的经历总结考前准备以及回答考试会出现的问题。

标签:机器学习|TensorFlow|数据科学|人工智能

原文作者

5月初,我决定考取TensorFlow开发人员认证考试。

因此,我为自己制定了学习计划来提升技能https://www.mrdbourke.com/ml-study-may-2020/,并在6月3日参加了认证考试。

然后,我!通!过!了!

这篇文章将与你分享我是如何做到的。你也能做到!

TensorFlow是什么?

TensorFlow是一个开源的数值计算框架,它允许你预处理数据,数据建模 (通常通过深度学习来查找模式),并将解决方案实施到世界各地。

谷歌的所有机器学习服务都是由它支持的。你正在使用的设备就很有可能已经运行了某种TensorFlow。

通常,编写TensorFlow代码你可以使用非常容易理解的Python(考试用Python)或JavaScript(tensorflow.js), 它们将会调用一系列C语言编写的函数来实现你的指令(很多是数值计算)。

什么是TensorFlow开发者认证?

TensorFlow开发者认证(https://www.tensorflow.org/certificate)是证明你具备使用TensorFlow能力的认证。 更具体地说,你具有使用TensorFlow(Python版本)构建深度学习模型的能力,有能力完成一系列任务,例如回归,计算机视觉(图像中的模式查找),自然语言处理(文本中的模式查找)和时间序列预测(根据一系列过去的事件预测未来的趋势)。

为什么要获得TensorFlow开发者认证?

我的第一个原因很简单,我想给自己一个挑战,并给我读一本新书的理由(稍后会详细介绍)。

另外两个原因是:

  • 1. 获得搭建机器学习的应用程序所需要具备的基本技能。

  • 2. 向未来的雇主展示你的技能。

说到就业,根据Hacker News的Who's Hiring页面上的数据(该页面列出了每个月软件开发人员招聘的技能要求),与其他深度学习框架相比,TensorFlow显得遥遥领先。

Hacker News的Who's Hiring

https://www.hntrends.com/2020/may-big-drop-developer-job-postings.html?compare=TensorFlow&compare=PyTorch&compare=Keras

比较了不同的深度学习框架在Hacker News的Who's Hiring页面职位中被提及的次数。备注1:从TensorFlow 2.x开始,Keras基本上是TensorFlow的一部分。备注2:由于当前的全球环境,任何软件开发人员的总体招聘人数下降。

我要明确一点,这个证书并不保证你100%能找到工作。但是,在如今在线学习的世界中,技能日趋商品化,这是展示你的能力的一种方式。我认为这个技能能够丰富你已有的个人项目 -- 你可以在课程中获得基础知识,在项目实践中获得特定的知识(Courses build foundation knowledge, projects build specific knowledge.)。

所以要如何做呢?

如何准备考试?

当我决定想要的时候,我浏览了认证网站并阅读了TensorFlow开发者认证手册。

通过这两种资源,我构建了以下课程。

TensorFlow网址:

https://www.tensorflow.org/certificate?hl=zh-cn

通过考试所必备的技能课程:

在我开始为考试学习之前,我有一些使用TensorFlow构建多个项目的经验,非小白。

所以经验丰富的TensorFlow和深度学习从业人员可能会与我完成课程的速度大致相同(总共3周),或许更快。

初学者将需要花费尽可能多的时间。谨记:学习任何有价值的技能都需要时间。

我列出了每种相关材料的时间表,费用($ USD)和它对考试的帮助级别。时间表是根据我的经验得出的。

如果你想为自己创建课程,建议参照我下面的计划。

注意:对于需要付费的资源,我附上的是我的推广链接。但这不会改变它的价格,但是如果你确实购买了课程,我将会收到一部分佣金。

  • 1. TensorFlow开发人员认证手册

网站:https://www.tensorflow.org/site-assets/downloads/marketing/cert/TF_Certificate_Candidate_Handbook.pdf

时间:1小时。

费用:免费。

帮助级别:必需。

这是第一步。TensorFlow开发者手册概述了考试中涉及的主要题目。重复阅读它,很有用。如果你是TensorFlow和机器学习的新手,可能会因为繁多的主题 感到压力。但是不用担心,以下资源将帮助你熟悉它们。

  • 2. Coursera课程TensorFlow in Practice Specialization

网站:

https://www.coursera.org/specializations/tensorflow-in-practice

时间:3周(高级用户)至3个月(初学者)。

费用:7天免费试用后每月59美元,可通过申请获得经济援助。如果你无法访问Coursera,也可以在YouTube上查看免费版本。

帮助级别:10/10。

这是与考试最相关的资源(也通常帮助入门TensorFlow)。细心的你会注意到这门课的章程跟TensorFlow认证手册基本一致。这门课是由TensorFlow和机器学习的两位大咖Laurence Moroney和Andrew Ng教的。如果只能选择一种材料来准备考试,那么我会选择这门课。它采用简短的视频格式,并提供动手实例。每节课的结尾都为学习者提供了多个code notebooks练习。

编程练习小提示:不要只是填补代码空白 完成作业,而是自己尝试编写整个程序。

  • 3.《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems 第二版

网站:https://www.amazon.com/gp/product/1492032646/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1492032646&linkCode=as2&tag=mrdbourke-20&linkId=b943d05f3bad8bd604f66cdbb49d35ef

时间:3周(仅阅读)— 3个月(阅读然后做题)

费用:亚马逊上的价格各不相同,但我以55美元的价格购买了印刷版。你可以在GitHub上免费查看所有代码。

帮助等级:7/10(某些章节与考试无关)。

本书涵盖700余页,基本上涵盖了所有机器学习知识,因此涵盖了与考试无关的一些主题。但这对于任何对机器学习有兴趣并计划打下坚实基础而不只是通过考试的人来说都是必读的。

如果你是机器学习的新手,那么你可能会发现这本书在一开始有难度。但是,花费时间和脑力在学习有用的技能上是值得的。

第二和第一版没有什么不同,它只是更新以涵盖最新工具和技术,即TensorFlow 2.x(资格考试所运用的技术)。

如果你只是为了参加考试,只需要阅读以下相关章节:

  • 第10章:Keras人工神经网络简介

  • 第11章:训练深度神经网络

  • 第12章:使用TensorFlow进行自定义模型和培训

  • 第13章:使用TensorFlow加载和预处理数据

  • 第14章:使用卷积神经网络的深度计算机视觉

  • 第15章:使用RNN和CNN处理序列

  • 第16章:具有RNN和注意力的自然语言处理

  • 对于认真的学生,我建议你阅读整本书和做练习题(也可以选择最能激发你兴趣的部分)。

  • 4.麻省理工学院深度学习课程

网址:http://introtodeeplearning.com

时间:3小时(我只看了3堂课)— 24小时(每堂课1个小时,外加1小时回顾)。

费用:免费。

帮助级别:8/10。

来自世界一流大学的一流深度学习课程,而且还免费。前3个讲座,深度学习(基础),卷积神经网络(Convolutional Neural Networks)(通常用于计算机视觉)和递归神经网络(recurrent neural networks)(通常用于文本处理)与考试最相关。

对于那些渴望学习的你来说,学习整个课程并不是一个难事。

一定要去看他们在GitHub上提供的实验和代码,尤其是Introduction to TensorFlow (https://github.com/aamini/introtodeeplearning/)。再说一遍,自己动手编写代码非常重要!!!

  • 5. PyCharm入门

时间:3小时(取决于计算机的速度)。

费用:免费。

帮助级别:10/10(必须使用PyCharm)。

考试在PyCharm(Python开发工具)中进行。考试前,我从未使用过PyCharm。所以建议你在开始之前至少对它有所了解。因此,为了熟悉PyCharm,我在YouTube上开始了他们的入门系列,这很简单。

但是主要是要确保TensorFlow 2.x可以正常运行,我的计算机可以在相当长的时间内运行深度神经网络(我使用的MacBook Pro没有Nvidia GPU)。

为了测试这一点,我在本地计算机上操作了以下两个TensorFlow教程:

1. 使用TensorFlow进行图像分类

https://www.tensorflow.org/tutorials/images/classification

2. 使用TensorFlow进行文本分类

https://www.tensorflow.org/tutorials/text/text_classification_rnn

两者在本地都能正常运行,但是,正如我们将在下面看到的那样,当我开始考试时,我遇到了一个问题。

  • 其他

  • Deeplearning.ai videos on Coursera/YouTube

https://www.youtube.com/channel/UCcIXc5mJsHVYTZR1maL5l9w/playlists

考试完全基于编写Python代码,但是如果你想知道所编写代码的幕后是什么(线性代数,演算),可以随时暂停去学习。例如,如果你不确定什么是小批量梯度下降(mini-batch gradient descent),请搜索“ deeplearning.ai小批量梯度下降”。

  • TensorFlow documentation

https://www.tensorflow.org/api_docs/python/tf

如果你要成为TensorFlow的从业人员,则需要有能力阅读该文档。如果你不懂,请编写代码并自行注释。

  • Coding with TensorFlow on YouTube

https://www.youtube.com/playlist?list=PLQY2H8rRoyvwLbzbnKJ59NkZvQAW9wLbx

大部分TensorFlow in Practice Coursera Specialization in video series的课程在YouTube上是由同一位讲师讲授的。

我如何准备考试的?

借助上面的资源,我整理了一个大纲。

我的TensorFlow Developer Certification curriculum in Notion。我使用了Kanban technique来跟踪需要完成的工作以及各种资源和注释。

访问链接:https://www.notion.so/Getting-TensorFlow-Developer-Certified- Curriculum-ff8385b6f9284fdfbc930ea06ce8749c

在整个五月的每个早晨,我会起床写作,散步,阅读1个小时的《Hands-on Machine Learning》书,做2到3个小时的TensorFlow练习,首先看视频课程,然后完成Google Colab中的所有编码练习,然后在每个模块的最后,观看相应的MIT深度学习入门讲座。

例如,一旦我完成了TensorFlow in Practice Specialization的计算机视觉部分,接着就观看MIT的卷积神经网络(一种计算机视觉算法)讲座。事实证明,这种三重方式(tribrid approach)非常有效。我在书中阅读过的概念将被Coursera专业化中的代码示例所巩固,并最终由MIT视频进行总结。

时间方面,我从5月11日开始学习考试,并于6月3日参加考试。

通过跟踪记录(in Notion中)和手写书签,我平均每小时可以学习20页,每2到3个小时就可以学习1周的课程内容,不分心的话。最后,在考试前几天,我下载了PyCharm,并确保了我之前编写过的一些代码在本地环境下可以运行。

考试详细信息-实际考试期间会发生什么?

从两个重要因素开始:

  • 考试费用:100美元/次(如果失败,则必须等待2周才能重考,之后每次失败的所需等待的时间会变长)。

  • 时限:5小时。如果没有考试开始时的错误,我会在3小时内轻松完成。但是,额外的时间是给你在计算机上训练深度学习模型(所以,请确保在你开始考试之前这个训练没有问题)。

考试的结构如何?

我不会在这里透露太多,因为这样算作弊。我要说的是阅读TensorFlow开发人员手册,将帮助你对考试的主要部分有一个清晰的了解。

练习每一种手册上提供的练习(以上提到的材料),考试将变得很轻松。

  • 考试花絮

训练模型-如果你的计算机不能够快速地训练深度学习模型(评分标准的一部分 是提交训练后的模型),则可以在Google Colab使用免费的GPU 对其进行训练,然后下载它们,并将其放入相关目录中并通过PyCharm提交。

我的Python编辑器不好用了-考试准备材料强调考试需要Python 3.7。开始时,我使用的是Python 3.7.3。出于某种原因,即使前一天TensorFlow还可以使用PyCharm在我的本地计算机上工作,在开始考试(自动创建TensorFlow环境)后,它还是不好用了。

每次我运行一行TensorFlow代码时,都会收到错误消息:

RuntimeError: dictionary changed size during iteration

现在,我不确定是考试安装的TensorFlow版本(2.0.0),还是我安装的特定Python版本(3.7.3)的问题。

尽管如此,在Github上进行了一番搜索之后(https://github.com/tensorflow/tensorflow/issues/33183),我发现了一个奇怪的修复程序,这意味着必须更改我使用的Python版本的源代码(特别是lincache.py的第48行) 。

# Previous line 48 of lincache.py
for mod in sys.modules.values():# Updated line 48 of linecache.py
for mod in list(sys.modules.values()): # added list()

注意:由于这是一次考试,因此只是一个快速解决方案,所以我不确定它是否有长期的效果。

在搜索期间,我还读到了另一种方法,就是更新/重新安装你在PyCharm中使用的TensorFlow版本(例如2.0.0-> 2.2.x)。我尝试过此方法,但是它不起作用,但是,作为PyCharm的新手,我怀疑是某些用户错误。

实施此修复程序后,我可以顺利完成考试。

完成考试后会怎样?

通过考试,你会收到电子邮件通知。除了“恭喜你通过”或“不幸的是你这次没有通过”之外,没有其他反馈。其实你在考试的过程中就可以对自己是否通过有个大致的判断,因为每提交一个模型,系统都会给出评分。

但是,如果你通过了,那么恭喜!

请在电子邮件中填写表格,以确保你被添加进TensorFlow Certified Developers network:

https://developers.google.com/certification/directory/tensorflow

通过考试并在电子邮件确认中填写表格后的几周内您将可以出现在Google的全球认证网站。需要1-2周。

注册在这里之后,任何正在寻找熟练使用TensorFlow开发者的公司都可以根据你的认证类型,经验和地区来搜索到你。

最后,在未来几周内你将收到一封正式的TensorFlow开发者认证证书和徽章。

Q&A

我真的需要证书吗?可以只学习不考证么?

归根结底,提升技能是目的,而不是证书。有证书是好的但不是必须的。

如果你说不需要证书,为什么要获得证书?

我喜欢面对挑战。为自己设定一个日期,例如“我将于6月3日参加考试”,这让我别无选择,只能学习。

我可以使用免费资源吗?

是的,当然可以。你可以通过阅读TensorFlow文档来学习所需的所有技能。实际上,当我需要练习某些东西时,我逐字的复制示例(每行代码),练习并理解它,然后看看自己是否可以做到。

为什么不使用PyTorch?

我爱PyTorch。但是他们不提供认证,如果提供的话,我可能也会这样做。另外,这两个框架(PyTorch和TensorFlow)的老用户可以看出最近的更新使这两个框架变得非常相似。如果这俩有任何不同的话,那么TensorFlow在企业界更具有优势(请参见上图)。

我不知道任何机器学习方法,该从哪里开始?

阅读文章 “5个初学者友好的机器学习步骤”。

https://www.mrdbourke.com/5-beginner-friendly-steps-to-learn-machine-learning/

我已通过考试,并已在Google Developers Certification网络中注册,接下来该怎么办?

是时候创造了!利用你学到的技能,制作出你想在世界上看到的东西。而且,别忘了分享你的作品,你永远都不知道谁会看到你的作品。

附注:如果你更喜欢看东西,我做了一个视频来讲述这个文章所涵盖的内容。

https://www.youtube.com/watch?v=ya5NwvKafDk&feature=youtu.be

原文标题:

How I passed the TensorFlow Developer Certification Exam

原文链接:

https://towardsdatascience.com/how-i-passed-the-tensorflow-developer-certification-exam-f5672a1eb641

编辑:王菁

校对:洪舒越

译者简介

方星轩,美国东北大学数据分析研究生在读,本科毕业于美国莫瑞州立大学商学院。对利用数据来进行市场和企业内的分析有着浓厚的兴趣,对机器学习AI领域充满好奇。喜欢篮球,吉他,旅行,希望能够结交朋友分享故事,拓宽视野,客观的看待世事万物。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | 如何通过TensorFlow 开发者资格考试(附链接)相关推荐

  1. tensorflow手册_谷歌TensorFlow开发者认证考试来了!哪些要点需要了解?

    全文共878字,预计学习时长4分钟 图源:devclass.com 3月12日,TensorFlow框架的开发团队谷歌大脑发布了第一个TensorFlow开发者认证项目,全世界的TensorFlow开 ...

  2. 独家 | Python中的SOLID原则(附链接)

    作者:Mattia Cinelli翻译:朱启轩校对:欧阳锦本文约3500字,建议阅读15分钟本文通过一些Python示例代码介绍了可以提高代码可靠性的SOLID编码准则. 标签:数据结构,编程,数据科 ...

  3. 独家 | 贝叶斯信念网络初探(附链接)

    作者:Jason Brownlee 翻译:陈超 校对:欧阳锦 本文约3500字,建议阅读8分钟 本文共分为5部分,从概率模型的挑战.概率模型--贝叶斯信念网络.如何建立和使用贝叶斯网络.贝叶斯网络范例 ...

  4. 独家 | 如何手动优化神经网络模型(附链接)

    翻译:陈丹 校对:车前子 本文约5400字,建议阅读15分钟 本文是一个教授如何优化神经网络模型的基础教程,提供了具体的实战代码供读者学习和实践. 标签:神经网络优化 深度学习的神经网络是采用随机梯度 ...

  5. 两个月不到,我是如何从Python新手成长为谷歌认证TensorFlow开发者的?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 因为新冠疫情宅家无事可做,印度尼西亚一位应用数学学生 Grady Ma ...

  6. 独家 | 手把手教TensorFlow(附代码)

    上一期我们发布了"一文读懂TensorFlow(附代码.学习资料)",带领大家对TensorFlow进行了全面了解,并分享了入门所需的网站.图书.视频等资料,本期文章就来带你一步步 ...

  7. Springboot+建筑造价师资格考试应试网站设计与实现 毕业设计-附源码260839

    Springboot建筑造价师资格考试应试网站 摘  要 如何合理确定和有效控制工程投资,是工程项目建设的一大难题,如何使建筑工程造价管理与社会生产水平相适应,是建筑工程造价管理中需要解决的问题,只有 ...

  8. (附源码)springboot+mysql+建筑造价师资格考试应试网站设计与实现 毕业设计260839

    Springboot建筑造价师资格考试应试网站 摘  要 如何合理确定和有效控制工程投资,是工程项目建设的一大难题,如何使建筑工程造价管理与社会生产水平相适应,是建筑工程造价管理中需要解决的问题,只有 ...

  9. springboot+mysql+建筑造价师资格考试应试网站设计与实现 毕业设计-附源码260839

    Springboot建筑造价师资格考试应试网站 摘  要 如何合理确定和有效控制工程投资,是工程项目建设的一大难题,如何使建筑工程造价管理与社会生产水平相适应,是建筑工程造价管理中需要解决的问题,只有 ...

最新文章

  1. 【CSS3教程】CSS3基础常用技巧实例集合
  2. 青少年编程竞赛交流群周报(第040周)
  3. antv g6 禁止移动_antV G6流程图在Vue中的使用
  4. ABP源码分析三十四:ABP.Web.Mvc
  5. OpenJDK 14 性能保持提升,但 OpenJDK 8 仍是最强王者
  6. Qt / Qt5 事件(event)机制详解
  7. Rxjs 里 subscribeToArray 工具函数的详细分析
  8. python性能分析工具_Python Profilers 分析器
  9. sourcetree克隆一直不成功_Git神器| SourceTree安装使用教程
  10. java 时间戳_Java并发编程之CAS三CAS的缺点 及解决办法
  11. win10更新后,gambit无法使用,出现exceed安装弹窗解决方法
  12. Rust 从入门到精通12-集合
  13. 威联通212P 在admin用户密码正确情况下仍然无法登录WEB页面解决办法
  14. 自制力差?!教你强迫自己学习
  15. shutdown关机命令 C语言 关机程序(恶搞 )
  16. AT2402E射频前端单芯片替代RFX2402E
  17. c++小游戏——忍者必须死
  18. 最后一天了(再见了)
  19. mstsc远程桌面连接失败,提示CredSSP加密Oracel修正
  20. Cocos2D结合CoreGraphics实现RPG人物中空黑洞吸入效果

热门文章

  1. 转:[大数据竞赛]协同过滤在这个问题上是否work
  2. Open-falcon运维监控系统——微信接口二次开发
  3. 解决 Python shell 中 Delete/Backspace 键乱码问题
  4. Python 输出格式符号
  5. Webwork 学习之路(四)Configuration 详解
  6. 雪碧图工具sprity(20151201更新修复了同时合并多张图的bug)
  7. 富士通推出MB95200H/10H/20H系列用于家电的LPC微控制器
  8. mysql col与row_使用mysql实现row_number() over(partition by col1 order by col2)函数
  9. xss跳转代码_从某cms的xss漏洞来学习代码审计
  10. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。