√ TensorFlow 2.0与上一版对比,可以视为一个完全不同的深度学习框架,必须重学。
√ 面向应用落地,涵盖图像识别|对话机器人|生成网络图片风格迁移|文本情感分析等。
√ 本书实战样例丰富,从TensorFlow模型训练到生产环境部署,全程剖析AI系统开发。
√ 通俗易懂地讲述人工智能从基本原理到知识结构再到工业应用,非常适合突击入门。
《走向TensorFlow 2.0:深度学习应用编程快速入门》是TensorFlow 2.0编程实践的入门类书籍,目的是在TensorFlow 2.0正式版发布之际能够帮助大家快速了解其核心特性及基本编程技巧。本书通过5个常用的人工智能编程案例,帮助大家掌握如何在工作中使用TensorFlow 2.0进行应用开发。
《走向TensorFlow 2.0:深度学习应用编程快速入门》内容覆盖了Python和TensorFlow基础入门、自然语言处理和CV领域的实践案例、模型的服务化部署,希望在基于TensorFlow 2.0的人工智能编程上能够助你一臂之力。
推荐序
AlphaGo以“Master”(大师)作为ID,横空出世,在中国乌镇围棋峰会上,它与世界围棋冠军柯洁对战,在围棋领域,击败人类精英。
继而,AlphaGo Zero,从空白状态起步,在无任何人类输入的条件下,能够迅速自学围棋,并以100∶0的战绩击败人类“前辈”。
机器学习,在尝试以人类经验图谱进行学习时,短短数年,就在围棋领域,击败了拥有几千年沉淀的人类顶尖高手。
如果说这是机器的力量,那么AlphaGo Zero在尝试不以人类的经验图谱进行自我深度学习时,产生了另一个质的飞跃,这,就是机器学习的力量。
机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判。这项技术,可以通过人类经验学习和自我深度学习,帮助人类在各个领域取得突破性进展。如今,领先的科技巨头无不在机器学习方面予以极大投入。Google、苹果、微软、阿里巴巴、百度,无不深度参与,期望成为机器学习技术的铺路者、领路者、践行者。
未来是什么样子的,没人说得清,但是未来在一步步来临的路上,必然有机器学习技术的铺垫。
2011年,“谷歌大脑”开始开展面向科学研究和工程应用的大规模深度学习。TensorFlow是Google第二代机器学习系统。如今,Google将此系统开源,并将此系统的参数公布给业界工程师、学者和大量拥有编程能力的技术人员,正是为了让全世界的人都能够从机器学习与人工智能中获益。
TensorFlow社区,是机器学习领域内最活跃和友善的社区之一。社区的好处,在于学习的路上,有很多人同行,你的任何问题和疑惑,在社区中都能得到相当不错的答案。如果你想了解和学习机器学习,那么TensorFlow是一个相当不错的选择。如果你想学习TensorFlow,那么这本书会让你以最低难度领略机器学习的奥秘。
我可以代表这样一类人,作为多年的技术工作者,在工作中和机器学习也有一些接触,对机器学习有比较浓厚的兴趣。拿到这本书,相见恨晚,翻阅着,用电脑作为武器,按照书中所示,比画着,一招一式中,不觉间就进入了机器学习的奇妙世界。这也使我通过学习机器如何进行自我深度学习,让自己从另一个角度进行思考,得到收获。
英俊的这本书,书如其名,内容英朗俊秀,深入浅出,浅显易懂,思在天地,行在山野。
推荐读者群体:期望入门机器学习的学生、技术工作者及其身边的人。如果你恰好是其中一类人,又读到了这里,这本书请不要错过,因为你阅读的书中项目可能会比Android系统更加深远地影响着世界!
阿里巴巴菜鸟网络技术专家 薛巍
中国,杭州
2019年9月
第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
本书探讨了开源机器学习软件库TensorFlow 2.0的诸多应用实践,内容涵盖各种热门的应用场景,包括图像识别、自然语言对话机器人、基于生成网络的图片风格迁移、文本情感分析等。该书是为“应用落地”而编写的,每章均附有大量的代码和注释,帮助读者更快地入门和实现应用落地。本书前两章分别介绍了Python的用法和TensorFlow的基础,在最后一章又探讨了如何将TensorFlow所训练的模型部署到生产环境中。本书对有志于在相关领域进行研究并快速产出原型的技术人员具有很高的参考价值。
寿黎但
浙江大学计算机学院教授
深度学习在工业领域逐步得到应用,尤其是其与物联网的结合,在智能家居、智慧城市、智慧交通、智慧医疗、智慧教育、智慧工业等多种行业场景中具有广阔的发展空间。而在这一发展过程中,培养合格的人工智能与物联网结合方向的研发人才,实现人工智能技术在工业应用领域的技术落地和实际应用,是人工智能领域教育培训的一个重要方向。本书详细介绍了深度学习基本原理和基于TensorFlow 2.0的编程实践入门,可以为人工智能领域的入门读者提供非常好的实践导引。
董亚波
浙江大学计算机学院副教授,人工智能研究所副所长
在与本书作者的项目合作中,借助其丰富的TensorFlow开发经验,使得项目得以顺利进行。有幸能够看到本书样章,书中内容短小精悍,有大量实战样例。读者阅读本书后,能够快速走进以TensorFlow 2.0为基础的AI系统开发领域。
牟磊育
中国地震局地球物理研究所 地震数据质量人工智能检测项目负责人
这一波人工智能浪潮与以往我们所讨论的人工智能最大的不同,就是其已经迅速在工业领域进行应用。互联网+人工智能+大数据的时代正在到来,新一代人工智能正加速推进经济向智能化跃升。因此,投资界非常看好目前人工智能在IOT、5G等方向的应用前景。本书作者以深厚的专业知识和多年的实践经验,由浅入深,用生动语言讲述了人工智能的基本原理、知识结构、工业应用。相信此书能够为人工智能爱好者,以及在此领域开展技术研究的读者提供一个通俗易懂的入门导引,帮助读者更快捷地进入人工智能应用领域。
詹家芳
原德国林德工程(杭州)有限公司总经理,留美硕士