编辑推荐
本书是介绍如何在产品中使用TensorFlow的实用教程。本书介绍了可以使用TensorFlow的多种情况, 并通过真实世界的项目, 向读者展示了如何使用TensorFlow。本书还讲解了在实际环境中使用TensorFlow的创新方法。本书主要介绍第二代机器学习与数值计算,提供了训练模型、机器学习、深度学习以及使用各种神经网络的项目,以此来讲解TensorFlow的应用领域,还讨论如何使用TensorFlow计算复杂数值。本书在教读者使用TensorFlow的同时,还展示了如何使用张量来探究各层的数据。只需选定一个跟读者环境相匹配的项目,就能学到如何在产品中应用TensorFlow的相关知识。读完本书后,读者将能通过TensorFlow有效改善项目的速度和效率。本书包括以下内容:● 加载、交互、剖析、处理和存储复杂数据集;● 使用先进的技术来解决分类和回归问题;● 使用线性回归模型预测简单时间序列的输出;● 使用逻辑回归方法预测时间序列在未来的结果;● 使用深度学习方法对图像进行分类;● 标定图像集,并使用包括卷积神经网络层的深度神经网络生成绘画图像;● 使用循环神经网络对时间信号进行预测并生成音乐。
内容简介
TensorFlow是Google所主导的机器学习框架,也是机器学习领域研究和应用的热门对象。《TensorFlow机器学习项目实战》主要介绍如何使用TensorFlow库实现各种各样的模型,旨在降低学习门槛,并为读者解决问题提供详细的方法和指导。《TensorFlow机器学习项目实战》全书共10章,分别介绍了TensorFlow基础知识、聚类、线性回归、逻辑回归、不同的神经网络、规模化运行模型以及库的应用技巧。《TensorFlow机器学习项目实战》适合想要学习和了解 TensorFlow 和机器学习的读者阅读参考。如果读者具备一定的C 和Python的经验,将能够更加轻松地阅读和学习本书。
作者简介
Rodolfo Bonnin是一名系统工程师,同时也是阿根廷国立理工大学的博士生。他还在德国斯图加特大学进修过并行编程和图像理解的研究生课程。他从2005年开始研究高性能计算,并在2008年开始研究和实现卷积神经网络,编写过一个同时支持CPU和GPU的神经网络前馈部分。最近,他一直在进行使用神经网络进行欺诈模式检测的工作,目前正在使用ML技术进行信号分类。
目录
- 第1章 探索和转换数据1
- 1.1 TensorFlow的主要数据结构—张量1
- 1.1.1 张量的属性—阶、形状和类型1
- 1.1.2 创建新的张量3
- 1.1.3 动手工作—与TensorFlow交互4
- 1.2 处理计算工作流—TensorFlow的数据流图5
- 1.2.1 建立计算图5
- 1.2.2 数据供给6
- 1.2.3 变量6
- 1.2.4 保存数据流图6
- 1.3 运行我们的程序—会话8
- 1.4 基本张量方法8
- 1.4.1 简单矩阵运算8
- 1.4.2 序列11
- 1.4.3 张量形状变换12
- 1.4.4 数据流结构和结果可视化—TensorBoard14
- 1.5 从磁盘读取信息18
- 1.5.1 列表格式—CSV18
- 1.5.2 读取图像数据19
- 1.5.3 加载和处理图像20
- 1.5.4 读取标准TensorFlow格式21
- 1.6 小结21
- 第2章 聚类22
- 2.1 从数据中学习—无监督学习22
- 2.2 聚类的概念22
- 2.3 k均值23
- 2.3.1 k均值的机制23
- 2.3.2 算法迭代判据23
- 2.3.3 k均值算法拆解24
- 2.3.4 k均值的优缺点25
- 2.4 k最近邻25
- 2.4.1 k最近邻算法的机制26
- 2.4.2 k-nn的优点和缺点26
- 2.5 有用的库和使用示例27
- 2.5.1 matplotlib绘图库27
- 2.5.2 scikit-learn数据集模块28
- 2.5.3 人工数据集类型28
- 2.6 例1—对人工数据集的k均值聚类29
- 2.6.1 数据集描述和加载29
- 2.6.2 模型架构30
- 2.6.3 损失函数描述和优化循环31
- 2.6.4 停止条件31
- 2.6.5 结果描述31
- 2.6.6 每次迭代中的质心变化32
- 2.6.7 完整源代码32
- 2.6.8 k均值用于环状数据集34
- 2.7 例2—对人工数据集使用最近邻算法36
- 2.7.1 数据集生成36
- 2.7.2 模型结构36
- 2.7.3 损失函数描述37
- 2.7.4 停止条件37
- 2.7.5 结果描述37
- 2.7.6 完整源代码37
- 2.8 小结39
- 第3章 线性回归40
- 3.1 单变量线性模型方程40
- 3.2 选择损失函数41
- 3.3 最小化损失函数42
- 3.3.1 最小方差的全局最小值42
- 3.3.2 迭代方法:梯度下降42
- 3.4 示例部分43
- 3.4.1 TensorFlow中的优化方法—训练模块43
- 3.4.2 tf.train.Optimizer类43
- 3.4.3 其他Optimizer实例类型44
- 3.5 例1—单变量线性回归44
- 3.5.1 数据集描述45
- 3.5.2 模型结构45
- 3.5.3 损失函数描述和Optimizer46
- 3.5.4 停止条件48
- 3.5.5 结果描述48
- 3.5.6 完整源代码49
- 3.6 例2—多变量线性回归51
- 3.6.1 有用的库和方法51
- 3.6.2 Pandas库51
- 3.6.3 数据集描述51
- 3.6.4 模型结构53
- 3.6.5 损失函数和Optimizer54
- 3.6.6 停止条件55
- 3.6.7 结果描述55
- 3.6.8 完整源代码56
- 3.7 小结57
- 第4章 逻辑回归58
- 4.1 问题描述58
- 4.2 Logistic函数的逆函数—Logit函数59
- 4.2.1 伯努利分布59
- 4.2.2 联系函数60
- 4.2.3 Logit函数60
- 4.2.4 对数几率函数的逆函数—Logistic函数60
- 4.2.5 多类分类应用—Softmax回归62
- 4.3 例1—单变量逻辑回归64
- 4.3.1 有用的库和方法64
- 4.3.2 数据集描述和加载65
- 4.3.3 模型结构67
- 4.3.4 损失函数描述和优化器循环67
- 4.3.5 停止条件68
- 4.3.6 结果描述68
- 4.3.7 完整源代码69
- 4.3.8 图像化表示71
- 4.4 例2—基于skflow单变量逻辑回归72
- 4.4.1 有用的库和方法72
- 4.4.2 数据集描述72
- 4.4.3 模型结构72
- 4.4.4 结果描述73
- 4.4.5 完整源代码74
- 4.5 小结74
- 第5章 简单的前向神经网络75
- 5.1 基本概念75
- 5.1.1 人工神经元75
- 5.1.2 神经网络层76
- 5.1.3 有用的库和方法78
- 5.2 例1—非线性模拟数据回归79
- 5.2.1 数据集描述和加载79
- 5.2.2 数据集预处理80
- 5.2.3 模型结构—损失函数描述80
- 5.2.4 损失函数优化器80
- 5.2.5 准确度和收敛测试80
- 5.2.6 完整源代码80
- 5.2.7 结果描述81
- 5.3 例2—通过非线性回归,对汽车燃料效率建模82
- 5.3.1 数据集描述和加载82
- 5.3.2 数据预处理83
- 5.3.3 模型架构83
- 5.3.4 准确度测试84
- 5.3.5 结果描述84
- 5.3.6 完整源代码84
- 5.4 例3—多类分类:葡萄酒分类86
- 5.4.1 数据集描述和加载86
- 5.4.2 数据集预处理86
- 5.4.3 模型架构87
- 5.4.4 损失函数描述87
- 5.4.5 损失函数优化器87
- 5.4.6 收敛性测试88
- 5.4.7 结果描述88
- 5.4.8 完整源代码88
- 5.5 小结89
- 第6章 卷积神经网络90
- 6.1 卷积神经网络的起源90
- 6.1.1 卷积初探90
- 6.1.2 降采样操作—池化95
- 6.1.3 提高效率—dropout操作98
- 6.1.4 卷积类型层构建办法99
- 6.2 例1—MNIST数字分类100
- 6.2.1 数据集描述和加载100
- 6.2.2 数据预处理102
- 6.2.3 模型结构102
- 6.2.4 损失函数描述103
- 6.2.5 损失函数优化器103
- 6.2.6 准确性测试103
- 6.2.7 结果描述103
- 6.2.8 完整源代码104
- 6.3 例2—CIFAR10数据集的图像分类106
- 6.3.1 数据集描述和加载107
- 6.3.2 数据集预处理107
- 6.3.3 模型结构108
- 6.3.4 损失函数描述和优化器108
- 6.3.5 训练和准确性测试108
- 6.3.6 结果描述108
- 6.3.7 完整源代码109
- 6.4 小结110
- 第7章 循环神经网络和LSTM111
- 7.1 循环神经网络111
- 7.1.1 梯度爆炸和梯度消失112
- 7.1.2 LSTM神经网络112
- 7.1.3 其他RNN结构116
- 7.1.4 TensorFlow LSTM有用的类和方法116
- 7.2 例1—能量消耗、单变量时间序列数据预测117
- 7.2.1 数据集描述和加载117
- 7.2.2 数据预处理118
- 7.2.3 模型结构119
- 7.2.4 损失函数描述121
- 7.2.5 收敛检测121
- 7.2.6 结果描述122
- 7.2.7 完整源代码122
- 7.3 例2—创作巴赫风格的曲目125
- 7.3.1 字符级模型125
- 7.3.2 字符串序列和概率表示126
- 7.3.3 使用字符对音乐编码—ABC音乐格式126
- 7.3.4 有用的库和方法128
- 7.3.5 数据集描述和加载129
- 7.3.6 网络训练129
- 7.3.7 数据集预处理130
- 7.3.8 损失函数描述131
- 7.3.9 停止条件131
- 7.3.10 结果描述131
- 7.3.11 完整源代码132
- 7.4 小结137
- 第8章 深度神经网络138
- 8.1 深度神经网络的定义138
- 8.2 深度网络结构的历史变迁138
- 8.2.1 LeNet 5138
- 8.2.2 Alexnet139
- 8.2.3 VGG模型139
- 8.2.4 第一代Inception模型140
- 8.2.5 第二代Inception模型141
- 8.2.6 第三代Inception模型141
- 8.2.7 残差网络(ResNet)142
- 8.2.8 其他的深度神经网络结构143
- 8.3 例子—VGG艺术风格转移143
- 8.3.1 有用的库和方法143
- 8.3.2 数据集描述和加载143
- 8.3.3 数据集预处理144
- 8.3.4 模型结构144
- 8.3.5 损失函数144
- 8.3.6 收敛性测试145
- 8.3.7 程序执行145
- 8.3.8 完整源代码146
- 8.4 小结153
- 第9章 规模化运行模型—GPU和服务154
- 9.1 TensorFlow中的GPU支持154
- 9.2 打印可用资源和设备参数155
- 9.2.1 计算能力查询155
- 9.2.2 选择CPU用于计算156
- 9.2.3 设备名称156
- 9.3 例1—将一个操作指派给GPU156
- 9.4 例2—并行计算Pi的数值157
- 9.4.1 实现方法158
- 9.4.2 源代码158
- 9.5 分布式TensorFlow159
- 9.5.1 分布式计算组件159
- 9.5.2 创建TensorFlow集群160
- 9.5.3 集群操作—发送计算方法到任务161
- 9.5.4 分布式编码结构示例162
- 9.6 例3—分布式Pi计算163
- 9.6.1 服务器端脚本163
- 9.6.2 客户端脚本164
- 9.7 例4—在集群上运行分布式模型165
- 9.8 小结168
- 第10章 库的安装和其他技巧169
- 10.1 Linux安装169
- 10.1.1 安装要求170
- 10.1.2 Ubuntu安装准备(安装操作的前期操作)170
- 10.1.3 Linux下通过pip安装TensorFlow170
- 10.1.4 Linux下从源码安装TensorFlow175
- 10.2 Windows安装179
- 10.2.1 经典的Docker工具箱方法180
- 10.2.2 安装步骤180
- 10.3 MacOS X安装183
- 10.4 小结185