TensorFlow是Python中最流行的机器学习框架之一。这本书将加深读者对TensorFlow新特性的认识,并可利用Python执行有监督和无监督的机器学习。
一、 本书目的
本书旨在向读者介绍TensorFlow及其功能,包括TensorFlow 2介绍、动态图机制、tf.data、tf.keras、TensorFlow Hub、机器学习和神经网络应用等内容。
本书适用于对机器学习及其应用有所了解的任何人: 数据科学家、机器学习工程师、计算机科学家、计算机科学与技术专业的学生和爱好者。
二、 本书涵盖内容
第1章为TensorFlow 2简介,通过大量代码片段,介绍TensorFlow的一些基本操作; 概述现代TensorFlow生态系统,并说明TensorFlow的安装方法。
第2章讲述TensorFlow 2的高级API——Keras,给出目前其在业界的评价和个人见解,然后介绍了Keras基本体系结构的四种不同表达方式,该方式应用于MNIST数据集训练。
第3章讲述基于TensorFlow 2的ANN技术,研究了神经网络的创建和应用技术。介绍ANN的数据表示、ANN的神经层、模型的创建、梯度计算、损失函数以及模型的保存和恢复。
第4章讲述基于TensorFlow 2的有监督学习,介绍了两种场景下TensorFlow的应用示例。线性回归将特征映射到具有连续值的已知标签,对未知特征进行预测; 逻辑回归场景中,特征被映射到分类标签,目的是预测未知特征的分类。
第5章讲述基于TensorFlow 2的无监督学习,探讨了自动编码器在无监督学习中的两个应用: 压缩数据和降噪(去除图像中的噪声)。
第6章讲述基于TensorFlow 2的图像识别,用到了“Google Quick Draw!”图像数据集和CIFAR 10图像数据集。
第7章讲述基于TensorFlow 2的图像风格迁移,介绍如何获取内容图像和样式图像用来生成混合图像。本章将使用预训练模型VGG19中的神经层来完成此任务。
第8章讲述基于TensorFlow 2的循环神经网络,讨论了RNN的一般原理,介绍了如何获取和准备供模型使用的文本。
第9章TensorFlow Estimators和TensorFlow Hub,首先介绍了用于训练时装数据集的Estimator,概述了这些Estimator如何为TensorFlow提供简单、直观的API,接着介绍了用于分析电影评论数据库IMDB的神经网络。
附录给出从tf1.12转换为tf2的方法及其注意事项。
三、 如何更好地利用本书
本书需要读者具备Python 3.6的基本知识,并熟悉Jupyter Notebook的使用。
相较于以文字形式给出的长篇阐述,本书认为读者更倾向于接受以代码片段和完整程序形式给出的解释。当然,两种形式在各类书籍中均占有一席之地。
强烈建议读者对机器学习的概念和技术有一定的了解,但如果读者只想粗略学习本书,这些了解也并非必要。
四、 下载示例代码文件
读者可以访问www.packt.com,登录个人账户并下载本书的示例代码文件。如果读者在别处购买了此书,可以访问www.packt.com/support并注册,我们会直接通过电子邮件将文件发送给您。
可以按照以下步骤下载代码文件:
(1) 在www.packt.com.网站上登录或注册。
(2) 选择SUPPORT选项卡。
(3) 单击Code Downloads & Errata。
(4) 在搜索框中输入图书名称,然后按照操作界面上的说明下载代码文件。
下载文件后,请确保使用最新版本解压缩或提取文件夹:
(1) Windows系统: WinRAR/7Zip。
(2) Mac系统: Zipeg/iZip/UnRarX。
(3) Linux系统: 7Zip/PeaZip。
该书的代码包托管在GitHub上,网址为https://github.com/PacktPublishing/Tensorflow2.0QuickStartGuide。如果代码有更新,将在现有的GitHub存储库上更新。网站上还提供了其他书籍和视频目录中的大量代码包,网址为https://github.com/PacktPublishing/。
五、 下载彩色图像
以下网址还提供了一个PDF文件,该文件包含本书中使用的屏幕截图/图表的彩色图像,网址为http://www.packtpub.com/sites/default/files/downloads/9781789530759_ColorImages.pdf。
六、 使用约定
本书中使用了许多文本约定。
CodeInText: 表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟url、用户输入和Twitter句柄。举个例子: 将下载的WebStorm10*.dmg磁盘映像文件作为另一个磁盘挂载在系统上。
代码格式如下:
image1 = tf.zeros([7, 28, 28, 3]) # example-within-batch by height by width by color
当提示注意代码块的特定部分时,相关行或项将设置为黑体格式:
r1 = tf.reshape(t2,[2,6]) # 2 rows 6 cols
r2 = tf.reshape(t2,[1,12]) # 1 rows 12 cols
r1
# tf.Tensor: id=33, shape=(2, 6), dtype=float32,
numpy= array([[ 0., 1., 2., 3., 4., 5.], [ 6., 7., 8., 9., 10., 11.]], dtype=float32)
任何命令行的输入或输出格式如下:
var = tf.Variable([3, 3])
黑体: 表示新术语、重要单词或在屏幕上看到的单词。例如,菜单或对话框中的单词会以黑体格式出现在文本中。示例: 从“管理”面板中选择“系统信息”。
七、 关于作者
Tony Holdroyd毕业于杜伦大学,主修数学和物理,具有MCSD、MCSD.net和SCJP等技术资格。随后获得伦敦大学计算机科学硕士学位。曾任计算机科学和数学专业的高级讲师,负责设计和教授C、C++、Java、C#和SQL等多种语言的编程课程。Tony对神经网络的热情源于硕士论文所做的研究,在硕士期间还开发了多个机器学习、神经网络和深度学习应用程序,并建议媒体行业将深度学习应用于图像和音乐处理。Tony的妻子Sue McCreeth是著名的音乐家,目前他们居住在英国肯特郡的格雷夫森德。
八、 关于审稿人
Sujit Pal是Elsevier实验室的技术研究总监。该实验室是ReedElsevier集团公司的高级技术小组。他的研究领域包括语义研究、自然语言处理(NLP)、机器学习和深度学习。在Elsevier实验室里,他从事过多个涉及大型图像和文本语料库的机器学习计划,以及其他有关推荐系统和知识图谱开发的计划。他与Antonio Gulli合著了Deep Learning with Keras一书,在他的博客(Salmon Run)中,他还撰写了一些相关技术的文章。
Narotam Singh原为地球科学部印度气象部门的气象学家,最近主动请求退休,去实现他的学习计划和帮助社会的梦想。他一直积极参与各种技术项目的研究,并对政府官员进行信息技术和通信领域的培训。他在研究生阶段主修电子学,毕业时又取得了物理学学位。同时,他还持有计算机工程领域的本科和硕士文凭。目前,他是一名自由职业者,发表过大量研究论文,还担任过许多书籍的技术审稿人。现在,他专注于人工智能、机器学习、深度学习、机器人的研究。