描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111563891丛书名: 智能系统与技术丛书
编辑推荐
内容简介
本书共有4部分,分9章。第壹部分对TensorFlow的历史脉络进行了简要的梳理,介绍在安装TensorFlow时应当考虑的因素,并给出了详细的TensorFlow安装指南;第二部分深入介绍TensorFlowAPI的基础知识;第三部分关注一种更为复杂的深度学习模型,首先对模型进行描述,然后介绍如何用可视化的数据流图表示所要创建的模型,以及如何利用TensorFlow有效地构建这些模型;本书的后一部分探讨TensorFlowAPI中新推出的特性,内容包括如何准备用于部署的模型、一些有用的编程模式,以及其他精选主题。
目 录
CONTENTS
目录
译者序
前言
第一部分 开启TensorFlow之旅
第1章 引言2
1.1 无处不在的数据2
1.2 深度学习2
1.3 TensorFlow:一个现代的机器学习库3
1.4 TensorFlow:技术概要3
1.5 何为TensorFlow4
1.5.1 解读来自官网的单句描述4
1.5.2 单句描述未体现的内容6
1.6 何时使用TensorFlow7
1.7 TensorFlow的优势8
1.8 使用TensorFlow所面临的挑战9
1.9 高歌猛进9
第2章 安装TensorFlow10
2.1 选择安装环境10
2.2 Jupyter Notebook与matplotlib12
2.3 创建Virtualenv环境12
2.4 TensorFlow的简易安装13
2.5 源码构建及安装实例:在64位Ubuntu Linux上安装GPU版TensorFlow14
2.5.1 安装依赖库14
2.5.2 安装Bazel15
2.5.3 安装CUDA软件(仅限NVIDIA GPU)16
2.5.4 从源码构建和安装TensorFlow18
2.6 安装Jupyter Notebook20
2.7 安装matplotlib20
2.8 测试TensorFlow、Jupyter Notebook及matplotlib21
2.9 本章小结23
第二部分 TensorFlow与机器学习基础
第3章 TensorFlow基础26
3.1 数据流图简介26
3.1.1 数据流图基础26
3.1.2 节点的依赖关系29
3.2 在TensorFlow中定义数据流图33
3.2.1 构建第一个TensorFlow数据流图33
3.2.2 张量思维39
3.2.3 张量的形状43
3.2.4 TensorFlow的Operation44
3.2.5 TensorFlow的Graph对象46
3.2.6 TensorFlow Session48
3.2.7 利用占位节点添加输入52
3.2.8 Variable对象53
3.3 通过名称作用域组织数据流图56
3.4 练习:综合运用各种组件61
3.4.1 构建数据流图63
3.4.2 运行数据流图66
3.5 本章小结71
第4章 机器学习基础72
4.1 有监督学习简介72
4.2 保存训练检查点74
4.3 线性回归76
4.4 对数几率回归78
4.5 softmax分类83
4.6 多层神经网络85
4.7 梯度下降法与误差反向传播算法88
第三部分 用TensorFlow实现更高级的深度模型
第5章 目标识别与分类96
5.1 卷积神经网络97
5.2 卷积100
5.2.1 输入和卷积核100
5.2.2 跨度102
5.2.3 边界填充104
5.2.4 数据格式104
5.2.5 深入探讨卷积核105
5.3 常见层107
5.3.1 卷积层108
5.3.2 激活函数108
5.3.3 池化层111
5.3.4 归一化113
5.3.5 高级层114
5.4 图像与TensorFlow116
5.4.1 加载图像116
5.4.2 图像格式117
5.4.3 图像操作121
5.4.4 颜色127
5.5 CNN的实现129
5.5.1 Stanford Dogs数据集129
5.5.2 将图像转为TFRecord文件130
5.5.3 加载图像133
5.5.4 模型134
5.5.5 训练136
5.5.6 用TensorBoard调试滤波器137
5.6 本章小结139
第6章 循环神经网络与自然语言处理140
6.1 循环神经网络简介140
6.1.1 时序的世界140
6.1.2 近似任意程序141
6.1.3 随时间反向传播142
6.1.4 序列的编码和解码143
6.1.5 实现第一个循环神经网络145
6.1.6 梯度消失与梯度爆炸145
6.1.7 长短时记忆网络147
6.1.8 RNN结构的变种148
6.2 词向量嵌入149
6.2.1 准备维基百科语料库151
6.2.2 模型结构155
6.2.3 噪声对比分类器156
6.2.4 训练模型156
6.3 序列分类157
6.3.1 Imdb影评数据集158
6.3.2 使用词向量嵌入159
6.3.3 序列标注模型159
6.3.4 来自最后相关活性值的softmax层161
6.3.5 梯度裁剪162
6.3.6 训练模型163
6.4 序列标注164
6.4.1 OCR数据集164
6.4.2 时间步之间共享的soft-max层166
6.4.3 训练模型169
6.4.4 双向RNN171
6.5 预测编码174
6.5.1 字符级语言建模174
6.5.2 ArXiv摘要API175
6.5.3 数据预处理177
6.5.4 预测编码模型178
6.5.5 训练模型182
6.5.6 生成相似序列185
6.6 本章小结188
第四部分 其他提示、技术与特性
第7章 产品环境中模型的部署190
7.1 搭建TensorFlow服务开发环境190
7.1.1 Docker镜像190
7.1.2 Bazel工作区191
7.2 导出训练好的模型192
7.3 定义服务器接口195
7.4 实现推断服务器197
7.5 客户端应用201
7.6 产品准备203
7.7 本章小结203
第8章 辅助函数、代码结构和类204
8.1 确保目录结构存在204
8.2 下载函数204
8.3 磁盘缓存修饰器205
8.4 属性字典206
8.5 惰性属性修饰器207
8.6 覆盖数据流图修饰器209
第9章 结语:其他资源212
目录
译者序
前言
第一部分 开启TensorFlow之旅
第1章 引言2
1.1 无处不在的数据2
1.2 深度学习2
1.3 TensorFlow:一个现代的机器学习库3
1.4 TensorFlow:技术概要3
1.5 何为TensorFlow4
1.5.1 解读来自官网的单句描述4
1.5.2 单句描述未体现的内容6
1.6 何时使用TensorFlow7
1.7 TensorFlow的优势8
1.8 使用TensorFlow所面临的挑战9
1.9 高歌猛进9
第2章 安装TensorFlow10
2.1 选择安装环境10
2.2 Jupyter Notebook与matplotlib12
2.3 创建Virtualenv环境12
2.4 TensorFlow的简易安装13
2.5 源码构建及安装实例:在64位Ubuntu Linux上安装GPU版TensorFlow14
2.5.1 安装依赖库14
2.5.2 安装Bazel15
2.5.3 安装CUDA软件(仅限NVIDIA GPU)16
2.5.4 从源码构建和安装TensorFlow18
2.6 安装Jupyter Notebook20
2.7 安装matplotlib20
2.8 测试TensorFlow、Jupyter Notebook及matplotlib21
2.9 本章小结23
第二部分 TensorFlow与机器学习基础
第3章 TensorFlow基础26
3.1 数据流图简介26
3.1.1 数据流图基础26
3.1.2 节点的依赖关系29
3.2 在TensorFlow中定义数据流图33
3.2.1 构建第一个TensorFlow数据流图33
3.2.2 张量思维39
3.2.3 张量的形状43
3.2.4 TensorFlow的Operation44
3.2.5 TensorFlow的Graph对象46
3.2.6 TensorFlow Session48
3.2.7 利用占位节点添加输入52
3.2.8 Variable对象53
3.3 通过名称作用域组织数据流图56
3.4 练习:综合运用各种组件61
3.4.1 构建数据流图63
3.4.2 运行数据流图66
3.5 本章小结71
第4章 机器学习基础72
4.1 有监督学习简介72
4.2 保存训练检查点74
4.3 线性回归76
4.4 对数几率回归78
4.5 softmax分类83
4.6 多层神经网络85
4.7 梯度下降法与误差反向传播算法88
第三部分 用TensorFlow实现更高级的深度模型
第5章 目标识别与分类96
5.1 卷积神经网络97
5.2 卷积100
5.2.1 输入和卷积核100
5.2.2 跨度102
5.2.3 边界填充104
5.2.4 数据格式104
5.2.5 深入探讨卷积核105
5.3 常见层107
5.3.1 卷积层108
5.3.2 激活函数108
5.3.3 池化层111
5.3.4 归一化113
5.3.5 高级层114
5.4 图像与TensorFlow116
5.4.1 加载图像116
5.4.2 图像格式117
5.4.3 图像操作121
5.4.4 颜色127
5.5 CNN的实现129
5.5.1 Stanford Dogs数据集129
5.5.2 将图像转为TFRecord文件130
5.5.3 加载图像133
5.5.4 模型134
5.5.5 训练136
5.5.6 用TensorBoard调试滤波器137
5.6 本章小结139
第6章 循环神经网络与自然语言处理140
6.1 循环神经网络简介140
6.1.1 时序的世界140
6.1.2 近似任意程序141
6.1.3 随时间反向传播142
6.1.4 序列的编码和解码143
6.1.5 实现第一个循环神经网络145
6.1.6 梯度消失与梯度爆炸145
6.1.7 长短时记忆网络147
6.1.8 RNN结构的变种148
6.2 词向量嵌入149
6.2.1 准备维基百科语料库151
6.2.2 模型结构155
6.2.3 噪声对比分类器156
6.2.4 训练模型156
6.3 序列分类157
6.3.1 Imdb影评数据集158
6.3.2 使用词向量嵌入159
6.3.3 序列标注模型159
6.3.4 来自最后相关活性值的softmax层161
6.3.5 梯度裁剪162
6.3.6 训练模型163
6.4 序列标注164
6.4.1 OCR数据集164
6.4.2 时间步之间共享的soft-max层166
6.4.3 训练模型169
6.4.4 双向RNN171
6.5 预测编码174
6.5.1 字符级语言建模174
6.5.2 ArXiv摘要API175
6.5.3 数据预处理177
6.5.4 预测编码模型178
6.5.5 训练模型182
6.5.6 生成相似序列185
6.6 本章小结188
第四部分 其他提示、技术与特性
第7章 产品环境中模型的部署190
7.1 搭建TensorFlow服务开发环境190
7.1.1 Docker镜像190
7.1.2 Bazel工作区191
7.2 导出训练好的模型192
7.3 定义服务器接口195
7.4 实现推断服务器197
7.5 客户端应用201
7.6 产品准备203
7.7 本章小结203
第8章 辅助函数、代码结构和类204
8.1 确保目录结构存在204
8.2 下载函数204
8.3 磁盘缓存修饰器205
8.4 属性字典206
8.5 惰性属性修饰器207
8.6 覆盖数据流图修饰器209
第9章 结语:其他资源212
前 言
PREFACE前 言欢迎自2015年11月TensorFlow第一个开源版本发布以来,它便迅速跻身于最激动人心的机器学习库的行列,并在科研、产品和教育等领域正在得到日益广泛的应用。这个库也在不断地得到改进、充实和优化。与此同时,TensorFlow社区正以惊人的速度发展壮大。无论你是新手还是有经验的用户,笔者都希望通过本书帮助你提升使用TensorFlow的能力,使你自如地充分利用这个功能强大的开源库。
本书的内容编排第一部分:开启TensorFlow之旅本书第一部分将帮助读者做好使用TensorFlow的准备。第1章为引言,对TensorFlow的历史脉络进行了简要的梳理,并对TensorFlow的设计模式以及选择TensorFlow作为深度学习库的优势和面临的挑战进行了讨论。
引言之后的第2章将介绍安装TensorFlow时应当考虑的因素,并给出了详细的TensorFlow安装指南,即如何从二进制安装包安装和从源码构建TensorFlow。
第二部分:TensorFlow与机器学习基础从第3章开始,进入本书第二部分。在TensorFlow安装完毕后,第3章将深入介绍TensorFlow API的基础知识,而不会涉及过多的机器学习概念。这样做是为了将“学习TensorFlow”和“学习如何利用TensorFlow从事机器学习相关工作”区分开来。第3章将对TensorFlow API中许多重要的部分进行深入剖析。此外,还将演示如何用可视化的数据流图表示模型,并将其转化为TensorFlow代码,以及如何利用TensorBoard验证数据流图是否被正确建模。
介绍完TensorFlow API的核心概念之后,便进入第4章。这一章将利用TensorFlow实现一些简单的机器学习模型,如线性回归、对数几率回归(logistic regression)和聚类模型。
第三部分:用TensorFlow实现更高级的深度模型第三部分由两章构成,每章都只关注一种更为复杂的深度学习模型。每章首先对模型进行描述,然后介绍如何用可视化的数据流图表示所要创建的模型。这两章还将讨论为什么要以特定方式构建这些模型,并对所涉及的数学难点进行讲解,之后再介绍如何利用TensorFlow有效地构建这些模型。
所要研究的第一个模型是卷积神经网络(CNN),对应于第5章。该章会介绍如何使用图像数据训练TensorFlow模型,并对卷积的数学原理和使用目的展开讨论,同时还将介绍如何将图像裸数据转化为一种与TensorFlow兼容的格式,以及如何对最终的输出进行测试。
第6章将探讨如何使用TensorFlow正确地构建循环神经网络(RNN)模型。通过各种自然语言处理(NLP)任务,读者将了解如何利用长短时记忆网络(LSTM)以及如何将预训练的词向量包含到模型中。
第四部分:其他提示、技术与特性本书最后一部分将探讨TensorFlow API中最新推出的特性,内容包括如何准备用于部署的模型、一些有用的编程模式,以及其他精选主题。
其他机器学习库TensorFlow并非唯一可用的开源机器学习库。下面列出一份可用于深度学习的简短开源库清单:
Caffe专注于卷积神经网络和图像处理,使用C 语言编写。
Chainer是另一个灵活的机器学习Python库,支持单机多GPU运算。
CNTK是微软公司发布的首个开源机器学习库,它拥有自己的模型定义语言,支持声明式的分布式模型构建。
Deeplearning4j是一个专门针对神经网络的Java库,它易于与Spark、Hadoop和其他基于Java的分布式软件集成,具有良好的可伸缩性。
Nervana Neon是一个高效的Python机器学习库,支持单机多GPU运算。
Theano是一个极为灵活的Python机器学习库,因其出众的用户友好性以及可以用异常简单的方式定义复杂模型等特点,在科研领域深受欢迎。TensorFlow的API与Theano API最为相似。
Torch是一个专注于GPU实现的机器学习库,它是用Lua语言编写的,并由来自若干家大公司的研究团队提供支持。
限于篇幅,本书不打算对上述这些库的优缺点展开深入讨论,但如果有时间,非常值得深入展开。TensorFlow的作者在进行框架设计时,便是从当中的几个库汲取了灵感。
先修知识虽然本书主要关注TensorFlow API,但笔者希望读者已经熟悉大量数学和编程概念,包括:
微积分(一元和多元)矩阵代数(尤其是矩阵乘法)基本的编程原理机器学习的基本概念此外,读者若能够掌握下列知识,则将从本书中获得更大的收获:
拥有Python编程及模块组织的经验拥有NumPy库的使用经验拥有matplotlib库的使用经验掌握机器学习中更高级的概念,尤其是前馈神经网络、卷积神经网络和循环神经网络在适宜的时候,笔者会通过一些提示信息帮助读者重新熟悉那些为充分理解相关数学和Python概念所必需的概念。
预期的收获通过阅读本书,读者将掌握以下内容:
TensorFlow的核心APITensorFlow的工作流:数据流图的定义和数据流图的执行如何在各种设备上安装TensorFlow组织代码和项目的最佳实践如何用TensorFlow创建核心机器学习模型如何用TensorFlow实现RNN和CNN如何用TensorFlow Serving部署代码利用TensorBoard分析模型的基础知识在学习完本书之后,如果读者想对TensorFlow获得更多了解,可参考下列资源:
TensorFlow官网 其中包含最新的文档、API和入门材料。
本书的内容编排第一部分:开启TensorFlow之旅本书第一部分将帮助读者做好使用TensorFlow的准备。第1章为引言,对TensorFlow的历史脉络进行了简要的梳理,并对TensorFlow的设计模式以及选择TensorFlow作为深度学习库的优势和面临的挑战进行了讨论。
引言之后的第2章将介绍安装TensorFlow时应当考虑的因素,并给出了详细的TensorFlow安装指南,即如何从二进制安装包安装和从源码构建TensorFlow。
第二部分:TensorFlow与机器学习基础从第3章开始,进入本书第二部分。在TensorFlow安装完毕后,第3章将深入介绍TensorFlow API的基础知识,而不会涉及过多的机器学习概念。这样做是为了将“学习TensorFlow”和“学习如何利用TensorFlow从事机器学习相关工作”区分开来。第3章将对TensorFlow API中许多重要的部分进行深入剖析。此外,还将演示如何用可视化的数据流图表示模型,并将其转化为TensorFlow代码,以及如何利用TensorBoard验证数据流图是否被正确建模。
介绍完TensorFlow API的核心概念之后,便进入第4章。这一章将利用TensorFlow实现一些简单的机器学习模型,如线性回归、对数几率回归(logistic regression)和聚类模型。
第三部分:用TensorFlow实现更高级的深度模型第三部分由两章构成,每章都只关注一种更为复杂的深度学习模型。每章首先对模型进行描述,然后介绍如何用可视化的数据流图表示所要创建的模型。这两章还将讨论为什么要以特定方式构建这些模型,并对所涉及的数学难点进行讲解,之后再介绍如何利用TensorFlow有效地构建这些模型。
所要研究的第一个模型是卷积神经网络(CNN),对应于第5章。该章会介绍如何使用图像数据训练TensorFlow模型,并对卷积的数学原理和使用目的展开讨论,同时还将介绍如何将图像裸数据转化为一种与TensorFlow兼容的格式,以及如何对最终的输出进行测试。
第6章将探讨如何使用TensorFlow正确地构建循环神经网络(RNN)模型。通过各种自然语言处理(NLP)任务,读者将了解如何利用长短时记忆网络(LSTM)以及如何将预训练的词向量包含到模型中。
第四部分:其他提示、技术与特性本书最后一部分将探讨TensorFlow API中最新推出的特性,内容包括如何准备用于部署的模型、一些有用的编程模式,以及其他精选主题。
其他机器学习库TensorFlow并非唯一可用的开源机器学习库。下面列出一份可用于深度学习的简短开源库清单:
Caffe专注于卷积神经网络和图像处理,使用C 语言编写。
Chainer是另一个灵活的机器学习Python库,支持单机多GPU运算。
CNTK是微软公司发布的首个开源机器学习库,它拥有自己的模型定义语言,支持声明式的分布式模型构建。
Deeplearning4j是一个专门针对神经网络的Java库,它易于与Spark、Hadoop和其他基于Java的分布式软件集成,具有良好的可伸缩性。
Nervana Neon是一个高效的Python机器学习库,支持单机多GPU运算。
Theano是一个极为灵活的Python机器学习库,因其出众的用户友好性以及可以用异常简单的方式定义复杂模型等特点,在科研领域深受欢迎。TensorFlow的API与Theano API最为相似。
Torch是一个专注于GPU实现的机器学习库,它是用Lua语言编写的,并由来自若干家大公司的研究团队提供支持。
限于篇幅,本书不打算对上述这些库的优缺点展开深入讨论,但如果有时间,非常值得深入展开。TensorFlow的作者在进行框架设计时,便是从当中的几个库汲取了灵感。
先修知识虽然本书主要关注TensorFlow API,但笔者希望读者已经熟悉大量数学和编程概念,包括:
微积分(一元和多元)矩阵代数(尤其是矩阵乘法)基本的编程原理机器学习的基本概念此外,读者若能够掌握下列知识,则将从本书中获得更大的收获:
拥有Python编程及模块组织的经验拥有NumPy库的使用经验拥有matplotlib库的使用经验掌握机器学习中更高级的概念,尤其是前馈神经网络、卷积神经网络和循环神经网络在适宜的时候,笔者会通过一些提示信息帮助读者重新熟悉那些为充分理解相关数学和Python概念所必需的概念。
预期的收获通过阅读本书,读者将掌握以下内容:
TensorFlow的核心APITensorFlow的工作流:数据流图的定义和数据流图的执行如何在各种设备上安装TensorFlow组织代码和项目的最佳实践如何用TensorFlow创建核心机器学习模型如何用TensorFlow实现RNN和CNN如何用TensorFlow Serving部署代码利用TensorBoard分析模型的基础知识在学习完本书之后,如果读者想对TensorFlow获得更多了解,可参考下列资源:
TensorFlow官网 其中包含最新的文档、API和入门材料。
评论
还没有评论。