内容简介 · · · · · ·
TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌、优步(Uber)、京东、小米等科技公司广泛应用。《Tensorflow实战》为使用TensorFlow深度学习框架的入门参考书,旨在帮助读者以最快、最有效的方式上手TensorFlow和深度学习。书中省略了深度学习繁琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow样例程序介绍如何使用深度学习解决这些问题。《Tensorflow实战》包含了深度学习的入门知识和大量实践经验,是走进这个最新、最火的人工智能领域的首选参考书。
作者简介 · · · · · ·
郑泽宇,现为才云科技(Caicloud.io)联合创始人、首席大数据科学家。针对分布式TensorFlow上手难、管理难、监控难、上线难等问题,他带领团队成功开发了国内首个成熟的分布式TensorFlow深度学习平台(TensorFlow as a Service)。基于此平台,才云大数据团队为安防、电商、金融、物流等多个行业提供有针对性的人工智能解决方案。归国创业之前,郑泽宇曾任美国谷歌高级工程师。从2013 年加入谷歌,郑泽宇作为主要技术人员参与并领导了多个大数据项目。由他提出并主导的产品聚类项目用于衔接谷歌购物和谷歌知识图谱(knowledge graph)数据,使得知识卡片形式的广告逐步取代传统的产品列表广告,开启了谷歌购物广告在搜索页面投递的新纪元。郑泽宇于2011年5月获得北京大学计算机学士学位,并荣获北京大学信息科学技术学院十佳优秀毕业...
郑泽宇,现为才云科技(Caicloud.io)联合创始人、首席大数据科学家。针对分布式TensorFlow上手难、管理难、监控难、上线难等问题,他带领团队成功开发了国内首个成熟的分布式TensorFlow深度学习平台(TensorFlow as a Service)。基于此平台,才云大数据团队为安防、电商、金融、物流等多个行业提供有针对性的人工智能解决方案。归国创业之前,郑泽宇曾任美国谷歌高级工程师。从2013 年加入谷歌,郑泽宇作为主要技术人员参与并领导了多个大数据项目。由他提出并主导的产品聚类项目用于衔接谷歌购物和谷歌知识图谱(knowledge graph)数据,使得知识卡片形式的广告逐步取代传统的产品列表广告,开启了谷歌购物广告在搜索页面投递的新纪元。郑泽宇于2011年5月获得北京大学计算机学士学位,并荣获北京大学信息科学技术学院十佳优秀毕业论文、北京大学优秀毕业生。2013年5月获得美国 Carnegie Mellon University(CMU)大学计算机硕士学位,并获得西贝尔奖学金 (Siebel Scholarship)。郑泽宇在机器学习、人工智能领域有多年研究经验,并在SIGIR、SIGKDD、ACL、ICDM、ICWSM等顶级国际会议上发表多篇学术论文。
目录 · · · · · ·
1.1 人工智能、机器学习与深度学习 2
1.2 深度学习的发展历程 7
1.3 深度学习的应用 10
1.3.1 计算机视觉 10
1.3.2 语音识别 14
· · · · · · (更多)
1.1 人工智能、机器学习与深度学习 2
1.2 深度学习的发展历程 7
1.3 深度学习的应用 10
1.3.1 计算机视觉 10
1.3.2 语音识别 14
1.3.3 自然语言处理 15
1.3.4 人机博弈 18
1.4 深度学习工具介绍和对比 19
小结 23
第2章 TensorFlow环境搭建 25
2.1 TensorFlow的主要依赖包 25
2.1.1 Protocol Buffer 25
2.1.2 Bazel 27
2.2 TensorFlow安装 29
2.2.1 使用Docker安装 30
2.2.2 使用pip安装 32
2.2.3 从源代码编译安装 33
2.3 TensorFlow测试样例 37
小结 38
第3章 TensorFlow入门 40
3.1 TensorFlow计算模型——计算图 40
3.1.1 计算图的概念 40
3.1.2 计算图的使用 41
3.2 TensorFlow数据模型——张量 43
3.2.1 张量的概念 43
3.2.2 张量的使用 45
3.3 TensorFlow运行模型——会话 46
3.4 TensorFlow实现神经网络 48
3.4.1 TensorFlow游乐场及神经网络简介 48
3.4.2 前向传播算法简介 51
3.4.3 神经网络参数与TensorFlow变量 54
3.4.4 通过TensorFlow训练神经网络模型 58
3.4.5 完整神经网络样例程序 62
小结 65
第4章 深层神经网络 66
4.1 深度学习与深层神经网络 66
4.1.1 线性模型的局限性 67
4.1.2 激活函数实现去线性化 70
4.1.3 多层网络解决异或运算 73
4.2 损失函数定义 74
4.2.1 经典损失函数 75
4.2.2 自定义损失函数 79
4.3 神经网络优化算法 81
4.4 神经网络进一步优化 84
4.4.1 学习率的设置 85
4.4.2 过拟合问题 87
4.4.3 滑动平均模型 90
小结 92
第5章 MNIST数字识别问题 94
5.1 MNIST数据处理 94
5.2 神经网络模型训练及不同模型结果对比 97
5.2.1 TensorFlow训练神经网络 97
5.2.2 使用验证数据集判断模型效果 102
5.2.3 不同模型效果比较 103
5.3 变量管理 107
5.4 TensorFlow模型持久化 112
5.4.1 持久化代码实现 112
5.4.2 持久化原理及数据格式 117
5.5 TensorFlow最佳实践样例程序 126
小结 132
第6章 图像识别与卷积神经网络 134
6.1 图像识别问题简介及经典数据集 135
6.2 卷积神经网络简介 139
6.3 卷积神经网络常用结构 142
6.3.1 卷积层 142
6.3.2 池化层 147
6.4 经典卷积网络模型 149
6.4.1 LeNet-5模型 150
6.4.2 Inception-v3模型 156
6.5 卷积神经网络迁移学习 160
6.5.1 迁移学习介绍 160
6.5.2 TensorFlow实现迁移学习 161
小结 169
第7章 图像数据处理 170
7.1 TFRecord输入数据格式 170
7.1.1 TFRecord格式介绍 171
7.1.2 TFRecord样例程序 171
7.2 图像数据处理 173
7.2.1 TensorFlow图像处理函数 174
7.2.2 图像预处理完整样例 183
7.3 多线程输入数据处理框架 185
7.3.1 队列与多线程 186
7.3.2 输入文件队列 190
7.3.3 组合训练数据(batching) 193
7.3.4 输入数据处理框架 196
小结 198
第8章 循环神经网络 200
8.1 循环神经网络简介 200
8.2 长短时记忆网络(LTSM)结构 206
8.3 循环神经网络的变种 212
8.3.1 双向循环神经网络和深层循环神经网络 212
8.3.2 循环神经网络的dropout 214
8.4 循环神经网络样例应用 215
8.4.1 自然语言建模 216
8.4.2 时间序列预测 225
小结 230
第9章 TensorBoard可视化 232
9.1 TensorBoard简介 232
9.2 TensorFlow计算图可视化 234
9.2.1 命名空间与TensorBoard图上节点 234
9.2.2 节点信息 241
9.3 监控指标可视化 246
小结 252
第10章 TensorFlow计算加速 253
10.1 TensorFlow使用GPU 253
10.2 深度学习训练并行模式 258
10.3 多GPU并行 261
10.4 分布式TensorFlow 268
10.4.1 分布式TensorFlow原理 269
10.4.2 分布式TensorFlow模型训练 272
10.4.3 使用Caicloud运行分布式TensorFlow 282
小结 287
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
循环神经网络源自于1982年由Saratha Sathasivam提出的霍普菲尔德网络。 Sathasivam S. Logic Learning in Hopfield Networks [J]. Modern Applied Science 2006 (查看原文) —— 引自第208页 -
A class for running TensorFlow operations. A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated. (查看原文) —— 引自第45页
> 全部原文摘录
丛书信息
喜欢读"Tensorflow:实战Google深度学习框架"的人也喜欢的电子书 · · · · · ·
喜欢读"Tensorflow:实战Google深度学习框架"的人也喜欢 · · · · · ·
Tensorflow:实战Google深度学习框架的书评 · · · · · · ( 全部 1 条 )

> 更多书评 1篇
-
卷积网路构建,第一层为卷积层。卷积层需要2个变量,weights和biases,使用tf提供的get_variable方法可创建对应变量。卷积过程需要使用nn.conv2d函数,并传递input、weights、step、padding参数。卷积的结果需要添加biases。之后通过ReLU完成去线性化,卷积过程结束。
2019-05-09 15:57:02
-
孔明 (Find it yourself.)
过滤器中另外一个需要人工指定的设置是处理得到的单位节点矩阵的大小,这个设置指的是输出单位节点矩阵的深度。注意过滤器的尺寸指的是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。 在这一页的举例中,过滤器的大小应该是:2×2,输入是一个:2×2×3的节点矩阵,输出是:1×1×5的矩阵,i表示的是过滤器的深度。作者没有明确点明,所里理解起来有点绕。2018-09-17 16:49:21
-
孔明 (Find it yourself.)
交叉熵定义: $$ H(p, q) = - \sum_x{p(x) \logq(x)} $$ 交叉熵中的两个概率分布不是对称的,刻画的是通过概率分布q来表达概率分布p的困难程度。p表示正确答案,q表示预测值。 交叉熵刻画的是两个分布的距离,也就是说交叉熵越小,两个分布越近。2018-07-20 10:18:14
-
孔明 (Find it yourself.)
关于Session的讨论: 在Tensorflow的官方文档中,Session的介绍如下: A class for running TensorFlow operations. A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated. 本书中的介绍: 会话拥有并管理TensorFlow程序运行时的所有资源。 其中,关于run()函数,官方文档的介绍如下: This method runs one "step" of TensorFlow computation, by runni...2018-07-19 19:01:09
关于Session的讨论:
在Tensorflow的官方文档中,Session的介绍如下:
A class for running TensorFlow operations. A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated. 引自 第3章 TensorFlow入门 本书中的介绍:
会话拥有并管理TensorFlow程序运行时的所有资源。 引自 第3章 TensorFlow入门 其中,关于run()函数,官方文档的介绍如下:
This method runs one "step" of TensorFlow computation, by running the necessary graph fragment to execute every Operation and evaluate every Tensor in fetches, substituting the values in feed_dict for the corresponding input values. 引自 第3章 TensorFlow入门 针对第63页中的反向传播过程,相对应的代码为:
sess.run(train_step, feed_dict = {x : X[start:end], y_:Y[start:end]})
其中train_step定义了一个AdaOptimizer运算,这里通过"evaluate"该优化运算,并根据运行图中的依赖关系来分别依次计算每一个张量。
在第63页中,为了在迭代优化的过程中得到交叉熵,这里又重新调用了sess.run,如下:
total_cross_entropy = sess.run(cross_entropy, feed_dict = {x: X, y_: Y})
这里应该是包含了重复计算,因为上面在计算train_step时肯定已经算过了该batch上的cross_entropy。这可能也是TensorFlow的特性使然,因为生成的计算图只描述计算方法和节点依赖关系,并不实际存储任何数据--常量是一个特例,只能通过feed_dict参数将数据传递到计算图中。
回应 2018-07-19 19:01:09 -
孔明 (Find it yourself.)
交叉熵定义: $$ H(p, q) = - \sum_x{p(x) \logq(x)} $$ 交叉熵中的两个概率分布不是对称的,刻画的是通过概率分布q来表达概率分布p的困难程度。p表示正确答案,q表示预测值。 交叉熵刻画的是两个分布的距离,也就是说交叉熵越小,两个分布越近。2018-07-20 10:18:14
-
孔明 (Find it yourself.)
过滤器中另外一个需要人工指定的设置是处理得到的单位节点矩阵的大小,这个设置指的是输出单位节点矩阵的深度。注意过滤器的尺寸指的是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。 在这一页的举例中,过滤器的大小应该是:2×2,输入是一个:2×2×3的节点矩阵,输出是:1×1×5的矩阵,i表示的是过滤器的深度。作者没有明确点明,所里理解起来有点绕。2018-09-17 16:49:21
-
卷积网路构建,第一层为卷积层。卷积层需要2个变量,weights和biases,使用tf提供的get_variable方法可创建对应变量。卷积过程需要使用nn.conv2d函数,并传递input、weights、step、padding参数。卷积的结果需要添加biases。之后通过ReLU完成去线性化,卷积过程结束。
2019-05-09 15:57:02
-
孔明 (Find it yourself.)
过滤器中另外一个需要人工指定的设置是处理得到的单位节点矩阵的大小,这个设置指的是输出单位节点矩阵的深度。注意过滤器的尺寸指的是一个过滤器输入节点矩阵的大小,而深度指的是输出单位节点矩阵的深度。 在这一页的举例中,过滤器的大小应该是:2×2,输入是一个:2×2×3的节点矩阵,输出是:1×1×5的矩阵,i表示的是过滤器的深度。作者没有明确点明,所里理解起来有点绕。2018-09-17 16:49:21
-
孔明 (Find it yourself.)
交叉熵定义: $$ H(p, q) = - \sum_x{p(x) \logq(x)} $$ 交叉熵中的两个概率分布不是对称的,刻画的是通过概率分布q来表达概率分布p的困难程度。p表示正确答案,q表示预测值。 交叉熵刻画的是两个分布的距离,也就是说交叉熵越小,两个分布越近。2018-07-20 10:18:14
这本书的其他版本 · · · · · · ( 全部2 )
-
电子工业出版社 (2018)8.3分 161人读过
-
限时抢
以下书单推荐 · · · · · · ( 全部 )
- IT 二级 AI人工智能(智力层次-实用性) 1.1.1.9 (ajian005)
- 计算语言学 NLP (汤圆先生)
- 机器学习实战篇 (极度视界)
- Data Science (霏昀)
- 大数据时代 (Colin Leon)
谁读这本书?
二手市场
订阅关于Tensorflow:实战Google深度学习框架的评论:
feed: rss 2.0
0 有用 王老吉 2018-06-27 03:53:10
还剩几个例子没看,写的挺清楚的,很基础
1 有用 Chapter09 2019-02-02 23:29:59
清晰好读
0 有用 Lorsa 2019-01-30 14:45:52
给个及格分吧,适合小白,但是也太浅了,为什么关于tensorflow的全是这种基础书呢???真心期待有一本专业的技术书出来
0 有用 是一个无聊的人 2017-12-04 22:06:30
很不错的书,适合课堂上听过一些神经网络以及写过tf hello world的我,废话不多说,抓紧用tf来写作业了
0 有用 飞翔的蘑菇🍄 2022-02-13 22:17:12
tf1基础教程
0 有用 飞翔的蘑菇🍄 2022-02-13 22:17:12
tf1基础教程
0 有用 西西弗斯爱推理 2021-09-18 04:11:38
另外一本启蒙书,2019年说真的不如官方blog
0 有用 Gentle. 2021-08-17 09:40:23
1.0版本有点老,建议直接看B站课程。
0 有用 时轲 2021-04-07 17:32:17
站在岸边学不会游泳。我正是没有泳池。
0 有用 cms 2021-03-01 00:26:28
17年11月买的书,当时看了两章,昨晚和今晚看完了六章,获益匪浅。