TensorFlow学习路径【转】

作者:黄璞
链接: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 Bostockhttp://colah.github.io/Café, 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 更新:重新排版

时间: 2024-09-30 19:07:01

TensorFlow学习路径【转】的相关文章

Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节点之间则是由张量(Tensor)作为边来连接在一起的.所以Tensorflow的计算过程就是一个Tensor流图.Tensorflow的图则是必须在一个Session中来计算.这篇笔记来大致介绍一下Session.Graph.Operation和Tensor. Session Session提供了O

【转载】前端学习路径

前端学习路径 什么是前端工程师? 总而言之前端工程师就是运用HTML/CSS/JavaScript等Web技术,在工作中配合设计师实现用户界面,和后端工程师进行数据对接,完成Web应用开发的职位. 开发工具 设计软件 前端工程师最首要的任务就是把设计师的设计图切好并翻译成代码,所以我们要学习一些设计软件的基础操作和切图方法. Photoshop 运用最广泛的设计软件,大部分人都在用它,很有必要学习一下 前端工程师必备的PS技能——切图篇 Sketch 轻量且功能强大,切图迅速高效,为UI设计而生

今后的学习路径

写一个website时,发现自己的java基础知识并不是很牢固,确实,为了写出一个真正的项目,疯狂的学习各种知识,只求懂个大概,没有深入,现在发现问题啦,回头重新学习,从后端到前端仔仔细细的重学一遍. 今后的学习路径是:java基础,(java多线程,可能最后学),HTML&CSS, javascript, jsp,Servlet.然后,用这些知识写几个项目,综合一下,疏通前端与后端,数据库之间的关系. 学习java用的书是<Head First Java>,如有需要,可以留言. 今天

Python之路【第二十四篇】:Python学习路径及练手项目合集

Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Python技术路径中包含入门知识.Python基础.Web框架.基础项目.网络编程.数据与计算.综合项目七个模块.路径中的教程将带你逐步深入,学会如何使用 Python 实现一个博客,桌面词典,微信机器人或网络安全软件等.完成本路径的基础及项目练习,将具备独立的Python开发能力. 完整的Python学

【免费资料】2016年最新CISSP资料,开启专业安全学习路径-教材|录音|讲义

2016年最新CISSP资料,开启专业安全学习路径新的一年,北京汇哲为您准备了2016年最新免费CISSP资料,开启您新的一年信息安全学习路径!资料包括:电子书:Official(ISC)2 Guide to the CISSP CBK 4 Edition (ISC2官方教材)电子书:CISSP(ISC)2 Certified Information Systems Security Professional Official StudyGuide, 7th Edition(ISC2官方指定辅导

TensorFlow学习笔记(UTF-8 问题解决 UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode byte 0xff in position 0: invalid start byte)

我使用VS2013  Python3.5  TensorFlow 1.3  的开发环境 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 在是使用Tensorflow读取图片文件的情况下,会出现这个报错 代码如下 # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np import mat

Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好的文章 Comprehensive learning path – Data Science in Python 深度学习路径-用python进行数据学习 Journey from a Pythonnoob(新手) to a Kaggler on Python So, you want to bec

AEAI Portal门户平台学习路径

1.概述 本文根据AEAI Portal的特点,为AEAI Portal门户平台初学者提供相对合理的学习路径,希望能帮助读者快速掌握AEAI Portal相关技能. 2.认识与部署 2.1 认识 Portal是一种Web应用,"portal是一种web应用,通常用来提供个性化.单点登录.聚集各个信息源的内容,并作为信息系统表现层的宿主.聚集是指将来自各个信息源的内容集成到一个web页面里的活动". AEAI Portal是国内(沈阳数通畅联软件技术有限公司)发布的一款Portal产品.

Linux学习路径(小白必看)

Linux学习路径,希望能够帮Linuxer们更快速,更高效的熟悉掌握Linux知识.实验楼还提供大量的Linux相关课程供你学习,助你早日玩转Linux. 内容能够得到你的喜欢,我们感到非常高兴的,也十分欢迎您分享转载,转载请保留原文链接.