tensorflow学习路径

尧字节 尧字节     2022-08-29     463

关键词:

作者:黄璞
链接:https://www.zhihu.com/question/41667903/answer/109611087
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

前言:其实TensorFlow本身仅仅是一个分布式的高性能计算框架,想要用TF做深度学习,仅仅学习这个框架本身是没有太大意义的。因此应该将TF看作技术路线中的一个核心点,去掌握整个开发所需要的必要技术,知识。尤其是深度学习的基本原理,这对日后搭建模型,模型调参以至提出新的模型都是极其有用的。

第一篇学习之路写于2016年6月份,时过境迁,特别是深度学习这个日新月异的领域,隔了那么久,不得不说已经有些过时了,并且随着学习的深入,越发觉得之前的学习之路过于笼统,加之TensorFlow发布了1.0正式版,因此整理一下,再次写一篇。这次在内容的结构上将会大体分为三种,首先是公共基础部分,这个无需多解释。另外,一个是偏向应用性质的快节奏(fast peace),针对不想也没必要深入了解理论知识希望尽快应用的人群,另一种是偏向研究性质的人群(hard way),针对例如研究生之类希望深入理论知识的人群。当然,hard way的前提是fast peace。但是写法上,并没有分别写,因为某种意义上这两种是相互包含的,分开写会显得冗长与重复,因此采用粗体标记提示特定部分是属于哪一种。

有些技术在知乎是不适合公开讨论的,因此还是要贴上自己这篇博客的链接:新手向的TensorFlow学习之路2(Learning paths 2)

1. 稳定的网络【公共基础】:这是个不是技术的技术,TensorFlow毕竟出自Google,官方文档访问不是很稳定。

2. Github【公共基础】:这是个开源程序的网站,Linux内核就在这个网站托管。Github的核心是Git,一种版本控制系统,已经逐渐取代SVN。这个网站托管了很多高质量的或者说世界顶尖的开源项目,比如TensorFlow。学习一下这个网站如何使用,注册个账号,学习一下Git的使用方法。这个网站有自己的tutorial和guide。而且后期自己的项目管理多半也会用到git,所以,早点学习肯定是有好处的。

【fast peace(即简略的快节奏教程,下同)】

1. Git 参考手册(推荐)

2. git – the simple guide

3. Git – Quick Guide

【hard way(即大而全的完整或者正式教程,下同)】:

1. Pro Git与Git的参考文档

2. Git – Tutorial

3. Git Tutorial

3. Python【公共基础】:这是一种非常流行的脚本语言,庞大的第三方库可以快速写出短小容易理解的代码,而且也是TensorFlow的推荐开发语言。不仅仅是对于TensorFlow这门语言很重要,对于整个机器学习,应用层面放眼望去基本就是Python与R的天下了,而R更偏向与统计学领域,深度学习Python简直是红透了半边天,当然我是针对初学者,如果已经掌握了其他语言,例如Java,C++,那么其实理论上而言可以不用掌握Python,选择自己熟悉的语言的API即可。但是对于TensorFlow,只有Python的API最全面,文档社区也最完善(截至2017年3月),当然随着TensorFlow的发展都会完善,可是现在就要用呀:)。而且,最重要的是,对于已经掌握其他语言的人来说,学习Python不会花费太久的。并且,Pytohn写起来短小精悍,易于理解,很适合这种用来搭架子调用框架而且不怎么需要考虑效率的场景(一般来讲,最需要效率的部分框架会用C++实现,Python仅仅是作为顶层去调用)。另外,推荐学习Python3,这才是Python的未来,2.7的支持在2020年会停止。而且,后面会知道的,对于Python2.7向3的支持很多情况仅仅是import几个future包。

【fast peace】

1. Tutorial – Learn Python in 10 minutes

2. Python Quick Guide

3. Google’s Python Class

【hard way】

1. 廖雪峰的Python教程

2. The Python Tutorial

4. Linux【公共基础】:TensorFlow的主要运行平台之一就是Linux,但是正式版对Windows的支持日趋完善,真的没时间学习Linux平台可以先在Windows上运行TensorFlow。不过,学习Linux真的用不了多久(当然是指做开发环境日常日用,立志做系统管理员还是要下一番功夫的)。推荐Ubuntu 16.04 LTS,这不仅是“新手友好”的发行版,也是Google很多产品的官方支持版本,官方支持就会带来很多便捷以及少一些”坑“。LTS(长期支持版本)的加成保证了系统的稳定(稳定不仅指运行稳定,更是指软件环境,例如python不会突然默认变成3.6,gcc不会突然就默认变成6,插一句,之所以这么说,是因为以前用的是Arch,装了TensorFlow一直跑的很开心,直到有天突然发现跑不起来了,原来是Arch升级了一下Python的默认版本变成了3.6了XD。)

【fast peace】

1. 我的知乎回答

【hard way】

1. UNIX Tutorial for Beginners

2. Linux Tutorial

3. Linux工具快速教程

5. 深度学习–概念与基础:

【fast peace】(偏向概念介绍,introduction):

1. 深度学习wiki

【hard way】(偏向概念解释,数学推导,基本原理): 两本经典中的经典书籍:第一本倾向于理论阐述,第二本则是倾向于直观解释。

1. Deep Learning

2. Neural Networks and Deep Learning

第三本则是代码应用向的,使用Theano从零搭建各种常见的网络结构,虽然是Theano,但是基本思想是统一的。

3. Deep Learning Tutorials

6. Python常用科学计算库【公共基础】:

1. Numpy

2. Sklearn

3. Matplotlib

4. Pandas

虽然说是公共基础部分,但是系统学习这几个库,也不是一件容易的事,而且很耗时间。因此还是遵循够用即可的原则。但是还是想列在这里,因为后来发现如果这几个库掌握的比较熟练,数据预处理后处理都能极大地节省时间,当你还在苦苦想如何设计预处理方法的时候,其实去查一查手册,大概率在这几个库里已经写好了。这几个库的官方文档都很优秀,比如Pandas的10 Minutes to pandas。因此,闲余时间多看看官方tutorial即可。

7. TensorFlow:

【fast peace】(偏向应用性质,到手即用,pretrained-models,tflearn,keras等):

1. TensorFlow的三份白皮书,对TensorFlow的整体有个把握或者说印象是很有必要的,对后期的“图编程”,优化,都很有启发。

2. TFLearn,基于TensorFlow的高级API,不需要了解太多细节,应用向的可以直接看这个。

【hard way】(偏向理论性质,调用基本API手写,自定义layer,自定义kernel,自定义optimizer等):

1. 官网教程,Get Start,Programmer’s guide,Tutorials,Performance过一遍。

2. Google的Udacity课程

8. 论文阅读路线图【hard way】: github上有个很有名的Deep Learning papers reading roadmap,已经过万stars,从事深度学习科研者的必读清单,在我写的上一篇学习之路中,虽然整理了很多论文,但是过于杂乱,在此就不做引用啦。

9. 相关博客等其他资源:

  1. 先放上我的博客啦(笑)
  2. Beginner-level tutorials for a powerful framework
  3. CS231n: Convolutional Neural Networks for Visual Recognition
  4. CS224n: Natural Language Processing with Deep Learning
  5. UFLDL Tutorial
  6. UFLDL教程(上面UFLDL Tutorial旧版,但是是中文的)
  7. First Contact With TensorFlow
  8. Deep Learning
  9. colah’s blog(推荐,写了很多晦涩概念可视化的博客)
  10. DeepLearning4J(虽然是一个面向Java的深度学习框架,但是文档很好,通用性也很强)

10. 不错的资源类网站:

1. arxiv-sanity

2. GitXiv

---------------------------------旧答案的分割线---------------------------------

发一波预告~最近刚用tensorflow搞完一个算是接近实际并且带有移动端应用外加inception retrain的项目,打算考试结束更新一波~:) 已更新(求助,如何使用删除线,<del>似乎无效)

TensorFlow已经发布1.0版本!

近期更新计划:
1.重新整理Learning path,将各个部分更加详尽阐述,同时给出合适的快速入手教程。
2.及时跟进最新进展,删除陈旧信息。
已更新(继续求助如何使用删除线,<del>似乎无效)

我在blog中总结了学习路线,针对新手。

新手向的Tensorflow学习之路(Learning paths)

文中的教程或者blog以及论文书籍基本上都是经典,推荐入门学习。


贴在这里:

在学习Tensorflow的过程中磕磕碰碰,总结一些个人心得记录于此,志同道合之友共勉~~

1.稳定的网络:Tensorflow毕竟出自Google,官方文档访问不是很稳定。而且一般来说,对于英文的文档,资料和疑问,Google搜索的结果要比Baidu好很多。(不是偏见,是各有所长,天气地图电影啥的,百度还是做的很好的)


2.Github:这是个开源程序的网站,Linux内核就在这个网站托管。Github的核心是Git,一种版本控制系统,已经逐渐取代SVN。这个网站托管了很多高质量的或者说世界顶尖的开源项目,比如Tensorflow。学习一下这个网站如何使用,注册个账号,学习一下Git的使用方法。这个网站有自己的tutorial和guide。


3.Linux: Tensorflow的主要运行平台就是Linux,目前在Windows上运行的方案是虚拟机,但是深度学习对计算要求还是比较高的,虚拟机效率不是太高,因此还是推荐在原生Linux中运行。新手推荐发行版是Ubuntu 或者Linux mint。这个可以自行搜索。学习Linux也有很多好处,因为很多开源软件都only linux的。


4.Python:这是一种非常流行的脚本语言,庞大的第三方库可以快速写出短小容易理解的代码,而且也是Tensorflow的推荐开发语言。教程太多了,这里给几个优秀的教程:官网教程Learn Python the Hard WayPython2.7教程


5.深度学习(Deep Learning,DL):虽然Tensorflow已经封装好了大部分DL的细节,但是如果不了解DL的相关核心概念,就会很难着手分析问题。首先强烈推荐这个教程,通读一遍,然后还有这个,可以快速浏览或者只看自己不太明白的地方,还有这个分块介绍的,还有几篇blog,这个这个讲的是卷积神经网络。图像识别用的比较多的就是卷积神经网络,这两篇可以看看。


6.Tensorflow:前面都是铺垫,是为了更好地使用Tensorflow。官方的文档不错,可以从get started然后tutorial看起,有个中文的翻译版,但是更新不及时(官方已经v1.0,这个可能是v0.8或者v0.7),可能有坑,可以和英文对照着看,还有个Tensorflow的教程,也不错。有篇FIRST CONTACT WITH TENSORFLOW也不错。


7.优秀博客:Hackery, Math &amp;amp; DesignMike BostockCafé, bonne nuit这几个都是我在学习中遇到的非常nice的blog,有时间读读定会有所收获。


8.经典论文及书籍:收集了一些DL的经典论文&书籍,有些杂乱,不过几乎都是经典,各取所需吧。百度云地址(密码: 4w91)。各位有更好的欢迎推荐,我会整理上传。


9.几篇原创TF相关文章(持续更新):如何理解TensorFlow中的batch和minibatch结合TensorFlow PlayGround的简单神经网络原理解释TensorFlow从源码安装,利用TF重训练Google Inception模型在Android端使用TensorFlow


其中,Python,DL,Tensorflow是重点,其他都是辅助, 自己感觉够用即可,无需深入。学习中遇到困难首先向搜索引擎询问。


2017.4.3 更新:修正笔误,同时加了前言


2017.3.30 更新:修正一些笔误


2017.3.28 更新:完成了近期更新计划,重新整理了所有内容,同时及时跟进了新的内容

2017.2.17 更新:更新了在移动端使用TF的项目笔记,添加了近期更新计划

2016.11.25 更新:更新预告

2016.10.15 更新:更新了提及的软件版本号,添加了第九部分原创TF相关博文

2016.8.8 更新:更新了提及的软件版本号

2016.7.27 更新:重新排版,上传了资料

2016.7.6 更新:重新排版

tensorflow学习记录

windows下的安装:首先访问https://storage.googleapis.com/tensorflow/找到对应操作系统下,对应python版本,对应python位数的whl,下载。打开cmd,输入pipinstall(刚才下载的完整路径.whl)     此处坑了我一万个小时…根本原因... 查看详情

机器学习-tensorflow2.0安装简易教程

1.打开AnacondaPrompt2.pipinstalltensorflow==2.0-ihttps://pypi.douban.com/simple过程出现选择,选y,最后等待完成安装。3.测试 4.在pycharm中找到上面路径的anaconda3下的python.exe,完成设置。 查看详情

tensorflowday-1tensorflow环境准备&参考资料(代码片段)

...模式3、算法学习路径(1)基础课程(2)TensorFlow实战(3)练习(4)深入学习TF4、Keras三、Resources四、参考资料1、官方文档(1)教程(2&#x 查看详情

tensorflowday-1tensorflow环境准备&参考资料(代码片段)

...模式3、算法学习路径(1)基础课程(2)TensorFlow实战(3)练习(4)深入学习TF4、Keras三、Resources四、参考资料1、官方文档(1)教程(2&#x 查看详情

tensorflowday-1tensorflow环境准备&参考资料(代码片段)

...模式3、算法学习路径(1)基础课程(2)TensorFlow实战(3)练习(4)深入学习TF4、Keras三、Resources四、参考资料1、官方文档(1)教程(2&#x 查看详情

tensorflow小结

1,才云科技的书《实战G深度学习框架》是一本好书,我的练习基本上都在其示例上运行,网上查看的示例都类似。2,windows下安装了anaconda,采用spyder来运行python3,python也有一段时间没有玩了,还好记得一些。4,tf.summary.FileWrit... 查看详情

深度学习--tensorflow(项目)验证码生成与识别(多任务学习)(代码片段)

目录基础理论一、生成验证码数据集1、生成验证码训练集1-0、判断文件夹是否为空1-1、创建字符集(数字、大小写英文字母)1-2、随机生成验证码(1000个,长度为4)2、生成验证码测试集代码二、获取数据... 查看详情

windows10配置tensorflow深度学习环境(gpu版)各种坑(代码片段)

我们配置一个tensorflow-gpu版的深度学习环境windows1064python3.5vs2017(需要C++部分)cuda9.0cudnn7.1GeForceGTX10601.安装python我们选择python3.5,直接从官网下载windows10版本的安装就行,可以选择默认安装路径,并添加环境变量。测试打卡cmd,输... 查看详情

tensorflow机器学习入门——常量变量placeholder和基本运算(代码片段)

一、这里列出了tensorflow的一些基本函数,比较全面:https://blog.csdn.net/M_Z_G_Y/article/details/80523834二、这里是tensortflow的详细教程:http://c.biancheng.net/tensorflow/三、下面程序是我学习常量、变量、placeholder和基本运算时形成的小函数imp... 查看详情

tensorflow------学习篇

跟风 学习TensorFlow。。。希望不要太难o(>﹏<)o一:TensorFlow中英文文档在学(一个是英文官方,一个是极客学院的中文文档):https://www.tensorflow.org/versions/master/tutorials/index.htmlTensorFlow官方文档中文版_TensorFlow中文教程_Tensor... 查看详情

实现迁徙学习-《tensorflow实战google深度学习框架》代码详解(代码片段)

...的下载#利用curl下载数据集curl-oflower_photos.tgzhttp://download.tensorflow.org/example_images/flower_photos.tgz#在当前路径下对下载的数据集进行解压tarxzfflower_photos.tgz 下载谷歌提供的训练好的Inception-v3模型wget-P/Volumes/Cu/QianXi_Learning--no-check-cer... 查看详情

tensorflow学习笔记一——justgetstarted

  我现在什么都不知道,打算开始学习tensorflow作为机器学习入门的开始。  昨天完成了对tensorflow官方入门介绍的学习,了解了tensorflow的基本原理和编程方法。我们在进行tensorflow编程时,程序的逻辑是:建立数据流图-->... 查看详情

tensorflow学习笔记3:tensorboard可视化学习

TensorBoard简介Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph、定量指标图以及附加数据。大致的效果如下所示, TensorBoard工作机制TensorBoard通过读取TensorFlow的事件文件来运行。TensorFlow的事件文件... 查看详情

tensorflow学习1

...对未来还是充满了希望的,至此从2017年11月左右开始接触tensorflow,一直的学习都比较间断,但是还是做了一些实际的实验的使用,但是深知自己对于tensorflow的理解的并不是很深入,再此之前学习过C++和相应的算法,和Python的一些... 查看详情

tensorflow实现迁移学习

此例程出自《TensorFlow实战Google深度学习框架》6.5.2小节卷积神经网络迁移学习。 数据集来自http://download.tensorflow.org/example_images/flower_photos.tgz ,及谷歌提供的Inception-v3模型https://storage.googleapis.com/download.tensorflow 查看详情

《tensorflow实战google深度学习框架》pdf一套四本+源代码_高清_完整

 TensorFlow实战热门Tensorflow实战书籍PDF高清版一套共四本+源代码,包含《Tensorflow实战》、《Tensorflow:实战Google深度学习框架(完整版)》、《TensorFlow:实战Google深度学习框架(第2版)》与《TensorFlow技术解析与实战》,不能错过的... 查看详情

tensorflow实战-tensorflow和其他深度学习框架的对比-第2章

2TensorFlow和其他深度学习框架的对比182.1主流深度学习框架对比182.2各深度学习框架简介20TensorFlowTensorFlow是相对高阶的机器学习库,用户?方便地用它设计神经网络结构,而不必为了追求高效率的实现亲自写C++或者CUDA代码。TensorFlo... 查看详情

tensorflow实现迁移学习

此例程出自《TensorFlow实战Google深度学习框架》6.5.2小节卷积神经网络迁移学习。数据集来自http://download.tensorflow.org/example_images/flower_photos.tgz,及谷歌提供的Inception-v3模型https://storage.googleapis.com/download.tensorflow.org/ 查看详情