学习TensorFlow的过程和经验总结

近日学习使用TensorFlow搭建神经网络建模终于取得了一些微小的成绩:

1、学会了使用Squential \ class 搭建神经网络模型
2、学会了使用compile来配置模型训练方法,如损失函数、优化器、准确性评价方法
3、学会了一些经典的神经网络模型的实现方法
4、学会了各优化器的作用和效果
5、学会了搭建神经网络进行训练和学习的整体框架和步骤


其实,我学习TensorFlow不止一两周了。我是从今年的2月份就开始学习了。当时报名了一个天池的算法比赛,需要使用CNN和RNN模型进行建模,所以从那时就开始了学习TensorFlow之路。虽然中间因为工作的原因断断续续,但是直到5月底,我对于TensorFlow的概念还是模糊的,一团浆糊,重点功能和模块说不清楚、抓不住。

但从6月中旬开始,渐渐找到 感觉,走对了路子,一直到现在7月下旬了,总算是取得了一些自己认可的小成绩,学会了独立用TensorFlow进行建模工作。
我回顾整个学习TF的过程,总结了这中间发生的几个关键转折点:

1、找对了教材
2、跟对了老师
3、成功安装TF2,成功配置IDEA开发环境解释器,成功进入开发环境
4、自己动手在IDEA中coding,熟练掌握建模的关键核心步骤
5、开始问问题,去读官方API文档寻找答案
6、开始在脑海中将各分散凌乱的API组织成一张交互的知识网,对庞杂的官方API文档有了功能逻辑上的整体认识

正如我坚信的那句话,学习路上的每一步都不会浪费。每个当下看似零散无用的知识都会在将来某个时刻某个地方发挥其不可或缺的作用。学习TensorFlow的这一路走来,躺了无数的坑,历尽了困惑和不解,比我去年9月份开始学习Spark的时候难多了。但是也正是因为这样的一个曲折的过程,才让我发现和总结了一些宝贵的学习经验。

接下来我们就开始细说下这段曲折的学习过程,已经在这个过程中的6个关键点都是如何发生的,又是如何拯救我于水火之中,最终成功将我送达彼岸的。

1、找对教材

开始学习TensorFlow的时候,我跟大家一样一开始也是先去查看官方教程。但是真的是无力吐槽,官方教程完全让人摸不着头脑。我跟着官方教程学了2周多还未能有感觉,果断失去了耐心。这是我找错的第一本教材。

之后我觉得要想系统的了解TF,了解它的运行原理和计算机制还是要有一本系统的教材才行。所以我网上搜了下相关教材,检索到的高频推荐的教材就是《TensorFlow实战-Google深度学习框架》。大约花了一周多的时间看完,还在2月17号的时候发了一篇学习笔记博文:《TensorFlow实战-Google深度学习框架》笔记

但是这是我找错的第二本教材。因为这本书是基于TensorFlow1.X的,而现在已经21年了,TF都已经升级到了2.X。2.X比1.X有了很大的升级和改版,完全可以说是我想去学开飞机,结果跑去报了个汽车驾驶班。所以我在看这本教材的时候,非常非常的困惑,因为我几乎不可能用下载的TF2.X版本的代码做coding实验。试了几次不能debug后,我就完全放弃了看这本书里的代码,到后面就只看书中讲的案例实现过程和思路。

这样之后很长一段时间我停下来学TF了,因为入不了门,摸不着整体框架,找不到感觉和兴奋点。但是转折点在3月中下旬来了。之前报名的天池算法大赛3月24是DDL。和我一起组队的小伙伴一个人承担了全部的工作,提交了代码进入了初赛。但是初赛只是拿到了入场券,要进入决赛还是需要进一步优化模型的。这时候同组的小伙伴让我来主导,他已经在初赛尽力了。

出于这样的压力和自我要求,我只能再次拾起TensorFlow ,再次进入学习和实践模式。而这次我知道自己要用的是CNN、RNN模型,想要的是快速落地和实践的代码。之前用的教材又都是失败的。恰好我想起了2020年年初的时候我让同学给我推荐过一本他学习深度学习用过的比较好的书。

没有想到的是,这本书本身就是偏向实践的教程,书也比较新是20年出版的,主要用的是TF2 和Keras,并且还配有github代码。跟着教材上的案例讲解配套看对应的章节的git代码,再自己复制下代码到Jupyter中运行,竟然很快就找到了感觉。当时感觉深度学习好简单,开心的不得了,也很有成就感。

对于这本书一看入迷,根本停不下来。书中关于CNN、RNN、GAN、VAE等经典模型的讲解和代码实现非常之精彩、易懂。这时候我才惊觉,原来这就是我要找的教材。而之前走的弯路,经历的挫折,承受的负面情绪的折磨都是因为用错了教材。误我深矣。


2、跟对老师

网上有很多深度学习、神经网络相关的视频教程,亦有很多名校的、名师的课程。比如比较火的台湾大学的某老师的课程,或者知名的吴恩达深度学习系列,MIT深度学习等等。虽然我机器学习是跟着吴恩达老师的视频课学的,当时真的是推崇备至,奉为圭臬,至今也是非常的喜欢,但是其深度学习的视频课程,我实在是没有跟下来。

可见一个老师擅长讲一门课的知识,但未必见得其他课的知识他也能讲的入门三分、趣味盎然。对于TensorFlow2和Keras的视频教程,我网上也看了一些,但大多没有给我很好的指导。直到我遇到了《TensorFlow2人工智能实践》视频课。我实在太喜欢这个老师了,讲解的非常的简要、精辟、直接又深刻,从不绕弯子,一点也不藏私,更绝的是很有自己的理解,而不是念书本。课程只有4个多小时,不用一星期就能完成一刷,刷完感觉自己就全部通了。浑身通透,就像被打通了任督二脉一样。

唯一可惜和遗憾的是我看到这个视频课的时候已经是6月上旬了,距离我2月中旬开始学习TensorFlow已经过去了近4个月了。真的希望当时的自己该再早点看到的。


3、成功安装TF2,成功配置IDEA开发环境解释器,成功进入开发环境

正如我前面所说的,到了6月中旬了,我还没有在IDEA开发环境中进行过神经网络模型的开发。之前成功运行的一直都是Jupyter环境,而这非常不利于工程化,更不是工作中开发上线模型所使用的开发环境。所以,如果不能成功安装TF2,不能在IDEA中成功配置TF2环境解释器,那么我永远也学不会神经网络模型的工程化开发,永远无法进阶成为高级玩家。

痛定思痛,必须要解决这个问题。我相信做难事必有所得,不能逃避。不能一直在Jupyter开发环境上将就着。跟着网上的视频教程,终于从6月16晚上11点到6月17凌晨2点前把开发环境问题解决了。这样我就成功的步入了使用Pycharm进行神经网络模型工程化开发的阶段。​​​​​​​这对于一个工程师来说是重要的一步,从此我就不再是使用Jupyter打野的了。


4、自己动手在IDEA中coding,熟练掌握建模的关键核心步骤

读万卷书,不如自己动手写书。代码就算你看了千千万,如果不能自己coding出来,都不能算你学会了。

code , debug, run 这是一个合格的算法工程师必须熟练和熟悉的,无须多言。


5、开始问问题,去读官方API文档寻找答案

如果4还只是根据git或教材上的案例进行代码的记忆复现,那么现在这个阶段就是要深入细节、深入背后的原理

问问自己,这个API的功能是实现什么,源码是怎么写的,都定义了哪些方法,每个方法都有哪些参数,参数背后又对应了深度学习的哪个知识、哪个原理。

选择了一个API+方法+参数,这样的配置对模型训练过程、结果的影响是怎样的。

什么样的场景下用这种API或方法,什么样的场景下用另一种API或方法,为什么,对应的原理又是什么。

API与API之间是怎么联动的,怎么交互作用的,是否又可以相互替代。

等等等,这些问题是一个业务熟练的算法工程师必须要知道答案的。而寻找这些问题答案的不二途径就是看官方API文档,阅读API源码,coding做实验验证自己猜想的答案,或者去书中寻找答案的理论支撑。


6、开始在脑海中将各分散凌乱的API组织成一张交互的知识网,对庞杂的官方API文档有了功能逻辑上的整体认识

当阅读多了官方API文档,你会渐渐地发现这些API之间的联系和联动。你会清晰的看到这些API是如何将深度学习的理论知识进行一块块地代码实现的,它们不再是孤立的、单一的API,而是深度学习这个鲜活的生命体上的一个个细胞和组织。它们相互作用、连接,一起发挥作用,生成一个个和而不同的神经网络模型。

以上就是我从21年2月12到今天21年7月22这大半年来学习TensorFlow的过程和经验总结。对我来说这次的经历受益匪浅,为以后的学习之路蹚出来很多宝贵的经验和教训。分享出来给我的粉丝们,与君共勉。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
TensorFlow是一个开源的机器学习框架,用于构建和训练各种机器学习模型。TensorFlow提供了丰富的编程接口和工具,使得开发者能够轻松地创建、训练和部署自己的模型。 TensorFlow Tutorial是TensorFlow官方提供的学习资源,旨在帮助新手快速入门。该教程详细介绍了TensorFlow的基本概念、常用操作和各种模型的构建方法。 在TensorFlow Tutorial中,首先会介绍TensorFlow的基本工作原理和数据流图的概念。通过理解数据流图的结构和运行过程,可以更好地理解TensorFlow的工作方式。 接下来,教程会详细介绍TensorFlow的核心组件,例如张量(Tensor)、变量(Variable)和操作(Operation)。这些组件是构建和处理模型的基本元素,通过使用它们可以创建复杂的神经网络和其他机器学习模型。 在教程的后半部分,会介绍如何使用TensorFlow构建不同类型的模型,例如深度神经网络(DNN)、卷积神经网络(CNN)和递归神经网络(RNN)。每个模型都会有详细的代码示例和实践任务,帮助学习者掌握相关知识和技能。 此外,教程还包含了关于模型的训练、评估和优化的内容,以及如何使用TensorBoard进行可视化和调试。 总结来说,TensorFlow Tutorial提供了全面而详细的学习资源,通过学习该教程,可以快速入门TensorFlow,并且掌握构建和训练机器学习模型的方法。无论是初学者还是有一定经验的开发者,都可以从中受益并扩展自己的机器学习技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值