《TensorFlow与卷积神经网络从算法入门到项目实战》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:华超编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:9787121370786
  • 页数:377 页
图书介绍:本书从TensorFlow基础讲起,逐步深入TensorFlow进阶实战,最后配合项目实战案例,重点介绍了实用TensorFlow库训练卷积神经网络模型并将模型移植到服务器端、Android端和iOS端的知识。读者不但可以系统地学习TensorFlow库的使用,还能加深对深度卷积神经网络的理解。本书分为4篇,共13章,涵盖的主要内容有人工智能发展历程,TensorFlow基础入门,高维Tensor对象的工具函数,前馈网络,常见网络,TensorFlow数据存取,TensorFlow数据预处理,TensorFlow模型训练,TensorBoard可视化工具,中文手写字识别,移植模型到TensorFlow Serving端,移植TensorFlow模型到Android端,移植TensorFlow模型到iOS端。

第一篇 TensorFlow基础篇 2

第1章 绪论 2

1.1 人工智能简介 2

1.2 卷积神经网络 3

1.3 搭建TensorFlow框架环境 5

1.3.1 安装Anaconda 5

1.3.2 安装TensorFlow 7

第2章 TensorFlow基础入门 9

2.1 第一个TensorFlow程序 9

2.1.1 TensorFlow中的hello world 9

2.1.2 TensorFlow中的图 11

2.1.3 静态图与动态图 14

2.2 初识Session 15

2.2.1 将Session对象关联Graph对象 15

2.2.2 Session参数配置 17

2.3 常量与变量 18

2.3.1 TensorFlow中的常量 18

2.3.2 TensorFlow中的变量 20

2.3.3 TensorFlow中的tf.placeholder 28

2.4 Tensor对象 29

2.4.1 什么是Tensor对象 29

2.4.2 Python对象转Tensor对象 31

2.4.3 Tensor对象转Python对象 32

2.4.4 SparseTensor对象 34

2.4.5 强制转换Tensor对象数据类型 35

2.5 Operation对象 37

2.5.1 什么是Operation对象 37

2.5.2 获取并执行Operation对象 37

2.6 TensorFlow流程控制 40

2.6.1 条件判断tf.cond与tf.where 40

2.6.2 TensorFlow比较判断 43

2.6.3 TensorFlow逻辑运算 44

2.6.4 循环tf.while_loop 45

2.7 TensorFlow位运算 48

2.7.1 且位运算 48

2.7.2 或位运算 49

2.7.3 异或位运算 50

2.7.4 取反位运算 51

2.8 TensorFlow字符串 52

2.8.1 字符串的定义与转换 53

2.8.2 字符串拆分 55

2.8.3 字符串拼接 56

第3章 高维Tensor对象的工具函数 58

3.1 重定义Shape 58

3.1.1 Reshape原理 58

3.1.2 函数tf.reshape 59

3.1.3 使用Python实现Reshape 60

3.2 维度交换函数 62

3.2.1 Transpose原理 62

3.2.2 函数tf.transpose 63

3.2.3 使用Python实现Transpose 64

3.3 维度扩充与消除 65

3.3.1 函数tf.expand_dims 65

3.3.2 函数tf.squeeze 66

3.4 Tensor对象裁剪 68

3.4.1 Tensor对象裁剪原理 68

3.4.2 函数tf.slice 69

3.5 Tensor对象拼接 70

3.5.1 Tensor对象拼接原理 70

3.5.2 函数tf.concat使用 71

3.6 tf.stack与tf.unstack 72

3.6.1 函数tf.stack的原理 72

3.6.2 函数tf.stack的使用 73

3.6.3 函数tf.unstack的使用 76

3.7 tf.argmax与tf.argmin 79

3.7.1 函数tf.argmax与tf.argmin的原理 79

3.7.2 函数tf.argmax与tf.argmin的使用 79

第二篇 卷积神经网络篇 83

第4章 前馈网络 83

4.1 卷积 83

4.1.1 卷积的原理 83

4.1.2 输出宽高与输入、Stride、卷积核及Padding之间的关系 90

4.1.3 空洞卷积 92

4.1.4 在TensorFlow中使用卷积 93

4.1.5 用Python语言实现卷积算法 95

4.2 反卷积 97

4.2.1 反卷积的原理 97

4.2.2 输出宽高与输入、Stride、反卷积核及Padding之间的关系 103

4.2.3 在TensorFlow中使用反卷积 105

4.2.4 用Python语言实现反卷积算法 110

4.3 Batch Normalization 113

4.3.1 Batch Normalization的原理 113

4.3.2 在TensorFlow中使用Batch Normalization 114

4.3.3 用Python语言实现Batch Normalization 122

4.3.4 在TensorFlow中使用Batch Normalization时的注意事项 123

4.4 Instance Normalization 125

4.4.1 Instance Normalization的原理 125

4.4.2 在TensorFlow中使用Instance Normalization 126

4.4.3 用Python语言实现Instance Normalization 130

4.5 全连接层 132

4.5.1 全连接层的原理 132

4.5.2 在TensorFlow中使用全连接层 133

4.5.3 用Python语言实现全连接层 134

4.6 激活函数 135

4.6.1 激活函数的作用 135

4.6.2 Sigmoid函数 136

4.6.3 Tanh函数 138

4.6.4 ReLU函数 140

4.7 池化层 142

4.7.1 池化层的原理 142

4.7.2 在TensorFlow中使用池化层 146

4.7.3 用Python语言实现池化层 150

4.8 Dropout 153

4.8.1 Dropout的作用 153

4.8.2 在TensorFlow中使用Dropout 154

第5章 常见网络 156

5.1 移动端定制卷积神经网络——MobileNet 156

5.1.1 MobileNet的原理与优势 156

5.1.2 在TensorFlow中实现MobileNet卷积 158

5.1.3 用Python语言实现Depthwise卷积 164

5.1.4 MobileNet完整的网络结构 167

5.1.5 MobileNet V2进一步裁剪加速 168

5.2 深度残差网络——ResNet 171

5.2.1 ResNet的结构与优势 171

5.2.2 在TensorFlow中实现ResNet 172

5.2.3 完整的ResNet网络结构 175

5.3 DenseNet 176

5.3.1 DenseNet的结构与优势 176

5.3.2 在TensorFlow中实现DenseNet 177

5.3.3 完整的DenseNet网络结构 180

第三篇 TensorFlow进阶篇 183

第6章 TensorFlow数据存取 183

6.1 队列 183

6.1.1 构建队列 183

6.1.2 Queue、QueueRunner及Coordinator 190

6.1.3 在队列中批量读取数据 194

6.2 文件存取 200

6.2.1 读取文本文件 200

6.2.2 读取定长字节文件 202

6.2.3 读取图片 205

6.3 从CSV文件中读取训练集 207

6.3.1 解析CSV格式文件 207

6.3.2 封装CSV文件读取类 209

6.4 从自定义文本格式文件中读取训练集 210

6.4.1 解析自定义文本格式文件 211

6.4.2 封装自定义文本格式文件读取类 212

6.5 TFRecord方式存取数据 213

6.5.1 将数据写入TFRecord文件 214

6.5.2 从TFRecord文件中读取数据 215

6.6 模型存取 217

6.6.1 存储模型 217

6.6.2 从checkpoint文件中加载模型 220

6.6.3 从meta文件中加载模型 222

6.6.4 将模型导出为单个pb文件 223

第7章 TensorFlow数据预处理 226

7.1 随机光照变化 226

7.1.1 随机饱和度变化 226

7.1.2 随机色相变化 228

7.1.3 随机对比度变化 230

7.1.4 随机亮度变化 232

7.1.5 随机伽玛变化 234

7.2 翻转、转置与旋转 237

7.2.1 随机上下、左右翻转 237

7.2.2 随机图像转置 239

7.2.3 随机旋转 241

7.3 裁剪与Resize 245

7.3.1 图像裁剪 245

7.3.2 图像Resize 249

7.3.3 其他Resize函数 254

7.4 用OpenCV对图像进行动态预处理 256

7.4.1 静态预处理与动态预处理 256

7.4.2 在TensorFlow中调用OpenCV 257

第8章 TensorFlow模型训练 260

8.1 反向传播中的优化器与学习率 260

8.1.1 Global Step与Epoch 260

8.1.2 梯度理论 260

8.1.3 使用学习率与梯度下降法求最优值 262

8.1.4 TensorFlow中的优化器 265

8.1.5 优化器中常用的函数 265

8.1.6 在TensorFlow中动态调整学习率 269

8.2 模型数据与参数名称映射 273

8.2.1 通过名称映射加载 273

8.2.2 以pickle文件为中介加载模型 275

8.3 冻结指定参数 277

8.3.1 从模型中加载部分参数 277

8.3.2 指定网络层参数不参与更新 278

8.3.3 两个学习率同时训练 280

8.4 TensorFlow中的命名空间 282

8.4.1 使用tf.variable_scope添加名称前缀 282

8.4.2 使用tf.name_scope添加名称前缀 284

8.4.3 tf.variable_scope与tf.name_scope的混合使用 285

8.5 TensorFlow多GPU训练 286

8.5.1 多GPU训练读取数据 286

8.5.2 平均梯度与参数更新 289

第9章 TensorBoard可视化工具 293

9.1 可视化静态图 293

9.1.1 图结构系列化并写入文件 293

9.1.2 启动TensorBoard 294

9.2 图像显示 296

9.2.1 系列化图像Tensor并写入文件 296

9.2.2 用TensorBoard查看图像 299

9.3 标量曲线 301

9.3.1 系列化标量Tensor并写入文件 301

9.3.2 用TensorBoard查看标量曲线 302

9.4 参数直方图 303

9.4.1 系列化参数Tensor并写入文件 303

9.4.2 用TensorBoard查看参数直方图 304

9.5 文本显示 306

9.5.1 系列化文本Tensor并写入文件 306

9.5.2 用TensorBoard查看文本 307

第四篇 卷积神经网络实战篇 310

第10章 中文手写字识别 310

10.1 网络结构及数据集 310

10.1.1 网络结构 310

10.1.2 数据集 311

10.2 代码实现 312

10.2.1 封装通用网络层 312

10.2.2 定义网络结构 314

10.2.3 数据读取 316

10.2.4 训练代码实现 318

10.3 模型训练 321

10.4 模型精度测试 321

10.4.1 精度测试 322

10.4.2 代码实现 322

第11章 移植模型到TensorFlow Serving端 324

11.1 模型转换 324

11.1.1 转换模型为TensorFlow Serving模型 324

11.1.2 代码实现 327

11.2 模型部署 329

11.2.1 搭建TensorFlow Serving环境 329

11.2.2 启动TensorFlow Serving服务 331

11.3 HTTP服务实现 333

11.3.1 使用gRPC调用TensorFlow Serving服务 333

11.3.2 实现HTTP服务 334

11.4 前端交互实现 336

11.4.1 界面布局 336

11.4.2 手写板实现 337

11.4.3 数据交互 339

11.4.4 流程测试 340

第12章 移植TensorFlow模型到Android端 341

12.1 交互界面 341

12.1.1 页面布局 341

12.1.2 实现手写板 342

12.2 使用TensorFlow Mobile库 346

12.2.1 模型转换 347

12.2.2 模型调用 347

12.2.3 模型测试 351

12.3 使用TensorFlow Lite库 354

12.3.1 模型转换 354

12.3.2 模型调用 355

12.3.3 模型测试 360

第13章 移植TensorFlow模型到iOS端 361

13.1 界面布局 361

13.1.1 页面布局 361

13.1.2 实现手写板 362

13.1.3 界面布局代码实现 366

13.2 TensorFlow模型转CoreML模型 369

13.2.1 模型转换 369

13.2.2 分析模型对象的调用接口 370

13.3 模型调用 373

13.3.1 实现模型调用 373

13.3.2 模型测试 376