猜你喜欢
走向TensorFlow 2.0:深度学习应用编程快速入门

走向TensorFlow 2.0:深度学习应用编程快速入门

书籍作者:赵英俊 ISBN:9787121376467
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6016
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《走向TensorFlow 2.0:深度学习应用编程快速入门》是TensorFlow 2.0编程实践的入门类书籍,目的是在TensorFlow 2.0正式版发布之际能够帮助大家快速了解其核心特性及基本编程技巧。本书通过5个常用的人工智能编程案例,帮助大家掌握如何在工作中使用TensorFlow 2.0进行应用开发。

《走向TensorFlow 2.0:深度学习应用编程快速入门》内容覆盖了Python和TensorFlow基础入门、自然语言处理和CV领域的实践案例、模型的服务化部署,希望在基于TensorFlow 2.0的人工智能编程上能够助你一臂之力。


作者简介

赵英俊
阿里云人工智能领域MVP,目前在阿里云从事产业、工业智能方向的解决方案架构师工作,基于数据智能、人工智能等技术和产品解决传统产业、工业的痛点和难点问题。现个人维护一个优秀的开源NLP项目——基于Seq2Seq的中文智能聊天机器人,目前GitHub stars超过1100。

编辑推荐
适读人群 :人工智能开发者、AI爱好者、初入门者

√ TensorFlow 2.0与上一版对比,可以视为一个完全不同的深度学习框架,必须重学。

√ 面向应用落地,涵盖图像识别|对话机器人|生成网络图片风格迁移|文本情感分析等。

√ 本书实战样例丰富,从TensorFlow模型训练到生产环境部署,全程剖析AI系统开发。

√ 通俗易懂地讲述人工智能从基本原理到知识结构再到工业应用,非常适合突击入门。

前言

坦白地说,在我的技术生涯规划中还未想过要在30岁生日之前出一本技术书。在30岁这一年里,我感觉有280天以上是每天工作超过12小时的,每天我积极处理工作上的事情以求在事业上取得成就、学习自己欠缺的技术以求提升能力、输出自己学到的知识以期帮助更多的人;在30岁这一年里,我第一次体会到颈椎病带来的痛苦,也将一直引以为傲的视力熬成了近视。之所以如此逼自己,大概是因为自己的不自信和痴痴的责任心在作祟。

创作初衷

最开始筹划这本书的时候,也只是想将自己在小象学院的课程内容整理成书(课程内容是关于TensorFlow 1.x的),但是当看到TensorFlow 2.0发布计划公布之后,我又觉得写一本关于TensorFlow 1.x的书是没有意义的,并且会浪费读者的时间和精力。因此,我彻底推翻书稿原来规划的内容,重新调整所有的知识点,所有的实践案例都用TensorFlow 2.0进行重新编程,从而导致交稿日期一拖再拖。说到这里,我要特别感谢电子工业出版社的张春雨老师,他一直在推动、鼓励甚至督促我,使我跌跌撞撞、写写停停完成了初稿、提升稿、提交稿。在本书写作过程中,江郎才尽和被掏空的感觉对我来说是最大的煎熬。我一直是一个喜欢分享知识和观点的人,但是这种成体系的、持续的、面向大众的分享和输出让我对自己的要求不断提高,总是担心如果写错了会误人子弟。这不是一个轻松的过程,尤其是在创业的初期,我首先要做的是全力以赴、出色地完成产品和技术工作,然后用本来就不多的休息时间来完成技术的提升和本书的编写。从一个追求技术深度的技术人员的视角来看,本书不能令我百分百满意,但是万事总要迈出第一步,希望这本书能够为读者带来一定的参考和学习价值。

内容结构

本书在内容规划上分3个部分,共7章,具体如下。

第1部分:编程基础入门,包括Python基础编程入门和TensorFlow 2.0快速入门知识。

第1章 Python基础编程入门:本章阐述了Python的历史、基本数据类型、数据处理工具Pandas、图像处理工具PIL等,基本覆盖了在后续章节中要用到的Python编程知识和工具。

第2章 TensorFlow 2.0快速入门:本章从快速上手的角度,通过TensorFlow 2.0的简介、环境搭建、基础知识、高级API编程等内容详细讲解了TensorFlow 2.0编程所需的知识和技巧。

第2部分:TensorFlow 2.0编程实践,讲解了4个编程案例,分别为基于CNN的图像识别应用、基于Seq2Seq的中文聊天机器人、基于CycleGAN的图片风格迁移应用、基于Transformer的文本情感分析。

第3章 基于CNN的图像识别应用编程实践:本章介绍了基于CNN实现对CFAIR-10图像数据的训练以及在线图像分类预测,包括CNN基础理论知识、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

第4章 基于Seq2Seq的中文聊天机器人编程实践:本章介绍了基于Seq2Seq实现对“小黄鸡”对话数据集的训练以及在线中文聊天,包括自然语言模型、RNN(循环神经网络)、Seq2Seq模型、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

第5章 基于CycleGAN的图片风格迁移应用编程实践:本章介绍了基于CycleGAN实现对Apple2Orange数据集的训练以及图像在线风格迁移,包括GAN基础理论知识、CycleGAN算法原理、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

第6章 基于Transformer的文本情感分析编程实践:本章介绍了基于Transformer的变形结构实现对IMDB评价数据集的训练以及在线对文本的情感分析和预测,包括Transformer基本结构、注意力机制、位置编码、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

第3部分:TensorFlow 2.0模型服务化部署,采用TensorFlow Serving实现对完成训练的模型进行生产环境的服务化部署。

第7章 基于TensorFlow Serving的模型部署实践:本章介绍了基于TensorFlow Serving框架实现对基于CNN的图像分类模型的服务化部署,包括TensorFlow Serving框架简介、TensorFlow Serving环境搭建、编程中用到的TensorFlow 2.0 API详解、项目工程结构设计、项目实现代码详解等。

致谢

最后,衷心感谢我的妻子包佳楠,感谢她一直以来的鼓励,以及一丝不苟地校正书稿中的语法错误和错别字,每次当我想要放弃的时候,她总是用几句不轻不重的话语让我重新回到本书的编写中来。

目录

第1章 Python基础编程入门 1

1.1 Python的历史 1

1.1.1 Python版本的演进 1

1.1.2 Python的工程应用情况 2

1.2 Python的基本数据类型 2

1.3 Python数据处理工具之Pandas 6

1.3.1 数据读取和存储 7

1.3.2 数据查看和选取 8

1.3.3 数据处理 11

1.4 Python图像处理工具之PIL 14

1.4.1 PIL简介 14

1.4.2 PIL接口详解 14

1.4.3 PIL图像处理实践 18

第2章 TensorFlow 2.0快速入门 21

2.1 TensorFlow 2.0简介 21

2.2 TensorFlow 2.0环境搭建 22

2.2.1 CPU环境搭建 22

2.2.2 基于Docker的GPU环境搭建 23

2.3 TensorFlow 2.0基础知识 25

2.3.1 TensorFlow 2.0 Eager模式简介 25

2.3.2 TensorFlow 2.0 AutoGraph简介 26

2.3.3 TensorFlow 2.0低阶API基础编程 26

2.4 TensorFlow 2.0高阶API(tf.keras) 32

2.4.1 tf.keras高阶API概览 32

2.4.2 tf.keras高阶API编程 34

第3章 基于CNN的图像识别应用编程实践 36

3.1 CNN相关基础理论 36

3.1.1 卷积神经网络概述 36

3.1.2 卷积神经网络结构 36

3.1.3 卷积神经网络三大核心概念 38

3.2 TensorFlow 2.0 API详解 38

3.2.1 tf.keras.Sequential 39

3.2.2 tf.keras.layers.Conv2D 41

3.2.3 tf.keras.layers.MaxPool2D 42

3.2.4 tf.keras.layers.Flatten与tf.keras.layer.Dense 42

3.2.5 tf.keras.layers.Dropout 43

3.2.6 tf.keras.optimizers.Adam 43

3.3 项目工程结构设计 44

3.4 项目实现代码详解 44

3.4.1 工具类实现 45

3.4.2 cnnModel实现 46

3.4.3 执行器实现 48

3.4.4 Web应用实现 52

第4章 基于Seq2Seq的中文聊天机器人编程实践 55

4.1 NLP基础理论知识 55

4.1.1 语言模型 55

4.1.2 循环神经网络 57

4.1.3 Seq2Seq模型 59

4.2 TensorFlow 2.0 API详解 61

4.2.1 tf.keras.preprocessing.text.Tokenizer 61

4.2.2 tf.keras.preprocessing.sequence.pad_sequences 62

4.2.3 tf.data.Dataset.from_tensor_slices 63

4.2.4 tf.keras.layers.Embedding 63

4.2.5 tf.keras.layers.GRU 63

4.2.6 tf.keras.layers.Dense 65

4.2.7 tf.expand_dims 65

4.2.8 tf.keras.optimizers.Adam 65

4.2.9 tf.keras.losses.SparseCategoricalCrossentropy 66

4.2.10 tf.math.logical_not 66

4.2.11 tf.concat 66

4.2.12 tf.bitcast 67

4.3 项目工程结构设计 67

4.4 项目实现代码详解 68

4.4.1 工具类实现 68

4.4.2 data_util实现 69

4.4.3 seq2seqModel实现 71

4.4.4 执行器实现 77

4.4.5 Web应用实现 83

第5章 基于CycleGAN的图像风格迁移应用编程实践 85

5.1 GAN基础理论 85

5.1.1 GAN的基本思想 85

5.1.2 GAN的基本工作机制 86

5.1.3 GAN的常见变种及应用场景 86

5.2 CycleGAN的算法原理 88

5.3 TensorFlow 2.0 API详解 88

5.3.1 tf.keras.Sequential 88

5.3.2 tf.keras.Input 91

5.3.3 tf.keras.layers.BatchNormalization 91

5.3.4 tf.keras.layers.Dropout 92

5.3.5 tf.keras.layers.Concatenate 93

5.3.6 tf.keras.layers.LeakyReLU 93

5.3.7 tf.keras.layers.UpSampling2D 93

5.3.8 tf.keras.layers.Conv2D 93

5.3.9 tf.optimizers.Adam 94

5.4 项目工程结构设计 95

5.5 项目实现代码详解 96

5.5.1 工具类实现 96

5.5.2 CycleganModel实现 100

5.5.3 执行器实现 105

5.5.4 Web应用实现 109

第6章 基于Transformer的文本情感分析编程实践 111

6.1 Transformer相关理论知识 111

6.1.1 Transformer基本结构 111

6.1.2 注意力机制 112

6.1.3 位置编码 116

6.2 TensorFlow 2.0 API详解 117

6.2.1 tf.keras.preprocessing.text.Tokenizer 117

6.2.2 tf.keras.preprocessing.sequence.pad_sequences 118

6.2.3 tf.data.Dataset.from_tensor_slices 118

6.2.4 tf.keras.layers.Embedding 118

6.2.5 tf.keras.layers.Dense 119

6.2.6 tf.keras.optimizers.Adam 119

6.2.7 tf.optimizers.schedules.LearningRateSchedule 120

6.2.8 tf.keras.layers.Conv1D 120

6.2.9 tf.nn.moments 121

6.3 项目工程结构设计 121

6.4 项目实现代码详解 122

6.4.1 工具类实现 122

6.4.2 data_util实现 124

6.4.3 textClassiferMode实现 128

6.4.4 执行器实现 138

6.4.5 Web应用实现 142

第7章 基于TensorFlow Serving的模型部署实践 144

7.1 TensorFlow Serving框架简介 144

7.1.1 Servable 145

7.1.2 Source 145

7.1.3 Loader 145

7.1.4 Manager 145

7.2 TensorFlow Serving环境搭建 146

7.2.1 基于Docker搭建TensorFlow Serving环境 146

7.2.2 基于Ubuntu 16.04搭建TensorFlow Serving环境 146

7.3 API详解 147

7.3.1 tf.keras.models.load_model 147

7.3.2 tf.keras.experimental.export_saved_model 147

7.3.3 tf.keras.backend.set_learning_phase 148

7.4 项目工程结构设计 148

7.5 项目实现代码详解 149

7.5.1 工具类实现 149

7.5.2 模型文件导出模块实现 150

7.5.3 模型文件部署模块实现 150

7.5.4 Web应用模块实现 152