TensorFlow是Google所主导的机器学习框架,也是机器学习领域研究和应用的热门对象。 《TensorFlow机器学习项目实战》主要介绍如何使用TensorFlow库实现各种各样的模型,旨在降低学习门槛,并为读者解决问题提供详细的方法和指导。《TensorFlow机器学习项目实战》全书共10章,分别介绍了TensorFlow基础知识、聚类、线性回归、逻辑回归、不同的神经网络、规模化运行模型以及库的应用技巧。 《TensorFlow机器学习项目实战》适合想要学习和了解 TensorFlow 和机器学习的读者阅读参考。如果读者具备一定的C 和Python的经验,将能够更加轻松地阅读和学习本书。
本书是介绍如何在产品中使用TensorFlow的实用教程。本书介绍了可以使用TensorFlow的多种情况, 并通过真实世界的项目, 向读者展示了如何使用TensorFlow。本书还讲解了在实际环境中使用TensorFlow的创新方法。 本书主要介绍第二代机器学习与数值计算,提供了训练模型、机器学习、深度学习以及使用各种神经网络的项目,以此来讲解TensorFlow的应用领域,还讨论如何使用TensorFlow计算复杂数值。 本书在教读者使用TensorFlow的同时,还展示了如何使用张量来探究各层的数据。只需选定一个跟读者环境相匹配的项目,就能学到如何在产品中应用TensorFlow的相关知识。读完本书后,读者将能通过TensorFlow有效改善项目的速度和效率。 本书包括以下内容: ● 加载、交互、剖析、处理和存储复杂数据集; ● 使用先进的技术来解决分类和回归问题; ● 使用线性回归模型预测简单时间序列的输出; ● 使用逻辑回归方法预测时间序列在未来的结果; ● 使用深度学习方法对图像进行分类; ● 标定图像集,并使用包括卷积神经网络层的深度神经网络生成绘画图像; ● 使用循环神经网络对时间信号进行预测并生成音乐。
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 数据流结构和结果可视化—TensorBoard 14
1.5 从磁盘读取信息 18
1.5.1 列表格式—CSV 18
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 损失函数描述和Optimizer 46
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 损失函数和Optimizer 54
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章 循环神经网络和LSTM 111
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 5 138
8.2.2 Alexnet 139
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—将一个操作指派给
GPU 156
9.4 例2—并行计算Pi的数值 157
9.4.1 实现方法 158
9.4.2 源代码 158
9.5 分布式TensorFlow 159
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安装
TensorFlow 170
10.1.4 Linux下从源码安装
TensorFlow 175
10.2 Windows安装 179
10.2.1 经典的Docker工具箱
方法 180
10.2.2 安装步骤 180
10.3 MacOS X安装 183
10.4 小结 185