致远行的人,自编TensorFlow教程(1)
来源:互联网 发布:反美颜软件app 编辑:程序博客网 时间:2024/05/01 00:04
这是本人自编的 TensorFlow 教程,本人对 TensorFlow 理解有限,请各位看官轻喷。本教程适用于 Python 基础不够好的同学,但仍然要求懂一些Python的基本语法。因为追求更加通俗易懂,本教程追求代码完整,描述冗长,请各位耐心看。谢谢!
首先是关于 TensorFlow 的安装,请参考
http://www.tensorfly.cn/tfdoc/get_started/os_setup.html
TensorFlow中文社区的安装指南,不过这个网站确实有长期不更新的感觉(没有实际证据)。同时Windows下也已经可以安装TensorFlow了,在下没有尝试过,也许需要熟悉Python的同学协助你;Linux或者MacBook使用pip即可安装。同时本教程基本使用CPU跑TensorFlow,请想使用GPU的同学自行学习。
本教程所有的代码都基于 Python3.6。
关于 TensorFlow 的最大的坑:API 频繁更改,请参考 http://devdocs.io/ 这个网站,上面有最新的 API 文档。当然,如果你可以翻墙上 TensorFlow 官网,或者上官网毫无压力,请上官网查阅相关文档。
以上是写在前面。如果有些地方看不懂,没有关系,只要装好TensorFlow就好,因为“Talk is cheap. Show me the code.”
在学习一门新的语言时,大家总是想先学如何写出“Hello, world!”程序。我们也从类似的打印输出开始吧,不过不是“Hello, world!”。
很多教程喜欢把步子迈得太大,在下智商有限,喜欢小步伐前进,同时更加平稳,注重细节。同时每段代码都是全的,就是说copy即可运行。
import tensorflow as tfnum = tf.constant([1, 2])init = tf.global_variables_initializer()with tf.Session() as sess: print(sess.run(num))
这段代码的输出很简单,就是打印[1 2],可自行跑一下,和打印“Hello, world”一个意思。稍微熟悉点编程的人都会说:“你TM在逗我!”。确实,打印一个变量,在Python里完全可以这样写(不要在意有没有逗号的区别,谢谢):
num = [1, 2]print(num)
但放这么简单的代码出来,还是需要说一些 TensorFlow 的基本规则的,麻雀虽小五脏俱全嘛,接下来我会详细解释代码。
首先,一个用 TensorFlow 框架写的代码有两部分组成:定义一张计算图;在一个会话中启动图。也许你会不知道我在说什么,总之先记住有两部分组成。
num = tf.constant([1, 2])
这行代码是在TensorFlow的图里定义一个常量(注意,它不是变量)。tf.constant 这个API是用来定义常量的。然后在这段代码里,计算图就定义完了(说好的计算呢,这个慢慢会解释)。
注:出现tf当然是因为import tensorflow as tf这行代码,基础差的可以先不用管,记得照着写上这一行就行了。
init = tf.global_variables_initializer()
这行代码是初始化计算图,就是为一些变量开辟空间,同时将计算模型固定。严格来说我不能准确描述清楚这行代码的目的及意义,不过可以先照着写就可以了,没有这行代码一定会报错。
with tf.Session() as sess: print(sess.run(num))
然后就是用会话启动图了,首先要定义会话,为什么要定义会话呢?目前我理解有限,只能说TensorFlow的规定是这样。至于为什么要写成
with tf.Session() as sess:
这样去定义会话,主要是因为省事,另一种定义会话的方式是
sess = tf.Session()# 加上其他代码sess.close()
你需要多写一行代码,为了避免忘记,建议用with。对了,为什么要close,目前我也只能说这也是规定,照着写就行了。
然后我们用sess.run()去计算图。比如sess.run(num)就是要求得到计算图里面num的计算结果。关于sess.run(),下一节会有更详细的介绍。
今天就介绍到这儿,万事开头难,会了基本规则,一般情况下可以先随意魔改一下代码,祝大家魔改顺利。
- 致远行的人,自编TensorFlow教程(1)
- 致远行的人,自编TensorFlow教程(2)
- 幸福的人不远行
- Python自编教程
- 自编Photoshop简单教程
- 自编Ps教程—我的ps图片欣赏
- 宁哥自编自导自演的《C语言,好爽》第7版(2017年)教程内容
- 宁哥自编自导自演的《C语言,好爽》第7版(2017年)教程内容
- TensorFlow教程:TensorFlow实现自编码器
- 朋友的远行
- 给远行的朋友们
- 我的远行
- PPT自编教程第一篇
- 远行
- 远行
- 远行
- 远行
- 自编的未完的
- Java中类加载机制与反射
- 线性筛 o(n)复杂度打素数表
- C语言编译 链接
- 对AFN 进行进一步封装,再应用于具体的项目,这样可以将业务逻辑代码与网络框架进行解耦
- js小知识
- 致远行的人,自编TensorFlow教程(1)
- dfs+bfs专题(简单题)
- linux文件系统与物理文件系统
- Codeforces 630J
- ARM裸机部分学习记录
- POJ 1511 Invitation Cards
- 在js中定义yyyy-MM-dd格式的日期
- 我的第一个C语言程序
- 开发Kafka通用数据平台中间件