描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121330667
√ 前谷歌专家、现Tensorflow创业新贵,新版力邀现谷歌专家加盟,共话新版核心技术与前沿案例。
√ 本书前版作为业界首著伴随Tensorflow火遍全球,旨在面向生产|商业场景,彻底贯通原理|实践。
TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用。《TensorFlow:实战Google深度学习框架(第2版)》为TensorFlow入门参考书,旨在帮助读者以快速、有效的方式上手TensorFlow和深度学习。书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow示例介绍如何使用深度学习解决实际问题。书中包含深度学习的入门知识和大量实践经验,是走进这个前沿、热门的人工智能领域的优选参考书。
第2版将书中所有示例代码从TensorFlow 0.9.0升级到了TensorFlow 1.4.0。在升级API的同时,第2版也补充了更多只有TensorFlow 1.4.0才支持的功能。另外,第2版还新增两章分别介绍TensorFlow高层封装和深度学习在自然语言领域应用的内容。
《TensorFlow:实战Google深度学习框架(第2版)》适用于想要使用深度学习或TensorFlow的数据科学家、工程师,希望了解深度学习的大数据平台工程师,对人工智能、深度学习感兴趣的计算机相关从业人员及在校学生等。
第1章 深度学习简介
1.1 人工智能、机器学习与深度学习
1.2 深度学习的发展历程
1.3 深度学习的应用
1.3.1 计算机视觉
1.3.2 语音识别
1.3.3 自然语言处理
1.3.4 人机博弈
1.4 深度学习工具介绍和对比
小结
第2章 TensorFlow环境搭建
2.1 TensorFlow的主要依赖包
2.1.1 Protocol Buffer
2.1.2 Bazel
2.2 TensorFlow安装
2.2.1 使用Docker安装
2.2.2 使用pip安装
2.2.3 从源代码编译安装
2.3 TensorFlow测试样例
小结
第3章 TensorFlow入门
3.1 TensorFlow计算模型——计算图
3.1.1 计算图的概念
3.1.2 计算图的使用
3.2 TensorFlow数据模型——张量
3.2.1 张量的概念
3.2.2 张量的使用
3.3 TensorFlow运行模型——会话
3.4 TensorFlow实现神经网络
3.4.1 TensorFlow游乐场及神经网络简介
3.4.2 前向传播算法简介
3.4.3 神经网络参数与TensorFlow变量
3.4.4 通过TensorFlow训练神经网络模型
3.4.5 完整神经网络样例程序
小结
第4章 深层神经网络
4.1 深度学习与深层神经网络
4.1.1 线性模型的局限性
4.1.2 激活函数实现去线性化
4.1.3 多层网络解决异或运算
4.2 损失函数定义
4.2.1 经典损失函数
4.2.2 自定义损失函数
4.3 神经网络优化算法
4.4 神经网络进一步优化
4.4.1 学习率的设置
4.4.2 过拟合问题
4.4.3 滑动平均模型
小结
第5章 MNIST数字识别问题
5.1 MNIST数据处理
5.2 神经网络模型训练及不同模型结果对比
5.2.1 TensorFlow训练神经网络
5.2.2 使用验证数据集判断模型效果
5.2.3 不同模型效果比较
5.3 变量管理
5.4 TensorFlow模型持久化
5.4.1 持久化代码实现
5.4.2 持久化原理及数据格式
5.5 TensorFlow实践样例程序
小结
第6章 图像识别与卷积神经网络
6.1 图像识别问题简介及经典数据集
6.2 卷积神经网络简介
6.3 卷积神经网络常用结构
6.3.1 卷积层
6.3.2 池化层
6.4 经典卷积网络模型
6.4.1 LeNet-5模型
6.4.2 Inception-v3模型
6.5 卷积神经网络迁移学习
6.5.1 迁移学习介绍
6.5.2 TensorFlow实现迁移学习
小结
第7章 图像数据处理
7.1 TFRecord输入数据格式
7.1.1 TFRecord格式介绍
7.1.2 TFRecord样例程序
7.2 图像数据处理
7.2.1 TensorFlow图像处理函数
7.2.2 图像预处理完整样例
7.3 多线程输入数据处理框架
7.3.1 队列与多线程
7.3.2 输入文件队列
7.3.3 组合训练数据(batching)
7.3.4 输入数据处理框架
7.4 数据集(Dataset)
7.4.1 数据集的基本使用方法
7.4.2 数据集的高层操作
小结
第8章 循环神经网络
8.1 循环神经网络简介
8.2 长短时记忆网络(LSTM)结构
8.3 循环神经网络的变种
8.3.1 双向循环神经网络和深层循环神经网络
8.3.2 循环神经网络的dropout
8.4 循环神经网络样例应用
小结
第9章 自然语言处理
9.1 语言模型的背景知识
9.1.1 语言模型简介
9.1.2 语言模型的评价方法
9.2 神经语言模型
9.2.1 PTB数据集的预处理
9.2.2 PTB数据的batching方法
9.2.3 基于循环神经网络的神经语言模型
9.3 神经网络机器翻译
9.3.1 机器翻译背景与Seq2Seq模型介绍
9.3.2 机器翻译文本数据的预处理
9.3.3 Seq2Seq模型的代码实现
9.3.4 注意力机制
小结
第10章 TensorFlow高层封装
10.1 TensorFlow高层封装总览
10.2 Keras介绍
10.2.1 Keras基本用法
10.2.2 Keras高级用法
10.3 Estimator介绍
10.3.1 Estimator基本用法
10.3.2 Estimator自定义模型
10.3.3 使用数据集(Dataset)作为Estimator输入
小结
第11章 TensorBoard可视化
11.1 TensorBoard简介
11.2 TensorFlow计算图可视化
11.2.1 命名空间与TensorBoard图上节点
11.2.2 节点信息
11.3 监控指标可视化
11.4 高维向量可视化
小结
第12章 TensorFlow计算加速
12.1 TensorFlow使用GPU
12.2 深度学习训练并行模式
12.3 多GPU并行
12.4 分布式TensorFlow
12.4.1 分布式TensorFlow原理
12.4.2 分布式TensorFlow模型训练
小结
序
2017年初,我曾为本书第1版写过一篇“推荐序”。后来郑泽宇邀请我共同完成第2版的写作,我从读者变成了作者,又有了许多新的感受。因此我想借着重新写序的机会,跟读者分享一下写作第2版的心路点滴。我在自然语言处理领域工作多年,这次负责撰写第9章自然语言处理的相关内容,本以为会是得心应手,然而事实上,写作的过程远比我想象中困难得多。困难的地方在于,写作进行的时候无法及时得到读者的反馈,不能把握读者的心声——理论部分介绍多少比较合适?关于语料预处理的内容会不会令读者感到枯燥?模型的实现应该使用基本模块来搭建还是直接调用TensorFlow中的库?注意力机制有那么多变体,到底应该介绍哪一个才符合读者的期望?这些都是我在写作过程中反复思考的问题。后书中呈现的内容,大致是我认真揣测读者的心思后,想到的在特定领域搭建应用时所要用到的精简的知识。希望这些知识能为读者进一步学习和实践打下良好的基础。
TensorFlow的库非常丰富。除了基础的网络结构之外,很多的研究成果都会被迅速提交到TensorFlow的库中。而为了提供的灵活度,每一个结构又常常提供许多配置参数。如果将这些库、参数都一一列出,那么本书无异于一本枯燥的API说明文档,这是我们不希望看到的。因此我们本着只介绍API中实用、核心部分的原则,希望能帮助读者快速上手。同时我们鼓励读者多多查阅官方文档,也许你想实现的某个功能已经包含在TensorFlow官方库中了。
在这里,我想感谢郑泽宇的邀请,让我全心投入,感受到了写书的乐趣与不易,于我自己也是一个巨大的提升。还要感谢我的同事高勤和江鹏在写作过程中为我提供的宝贵意见。同时,衷心感谢在本书第1版的官方网站上留言的热心读者们,你们的建议成就了更好的第2版内容。希望读者们继续多提建议,包括希望看到哪些内容可以更详细、更深入,哪些内容可以精简,以及未来版本可以加入哪些内容等。读者们的支持永远是我们持续改进的动力!
梁博文
2017年12月
前言
“深度学习”这个词在过去的一年之中已经轰炸了媒体、技术博客甚至朋友圈。这也许正是你会读到本书的原因之一。数十年来,人工智能技术虽不断发展,但像深度学习这样在学术界和工业界皆具颠覆性的技术实在是十年难遇。可惜的是,理解和灵活运用深度学习并不容易,尤其是其复杂的数学模型,让不少感兴趣的同学很快“从入门到放弃”。在本书第1版前,很难找到从实战出发的深度学习和TensorFlow参考书,这也是笔者在工作之余熬夜撰写这本书的动力。笔者本人作为一枚标准码农、创业党,希望这本书能够帮助码农和准码农们绕过深度学习复杂的数据公式,快速上手深度学习,解决工作、学习中的实际问题。
2016年初,笔者和小伙伴们从美国谷歌辞职,回到祖国并在杭州联合创办了才云科技(Caicloud.io),为企业提供人工智能平台和解决方案。回国之初,很多企业对于TensorFlow都显示出了浓厚的兴趣,然而在深度交流之后,发现TensorFlow虽然是一款非常容易上手的工具,但是深度学习的技术并不是每一家企业都能掌握的。为了让更多的人和企业可以享受到深度学习技术带来的福利,笔者与电子工业出版社的张春雨编辑一拍即合,开始了本书的撰写工作。
使用TensorFlow实现深度学习是本书介绍的重点。本书将从TensorFlow的安装开始,依次介绍TensorFlow的基本概念、使用TensorFlow实现全连接深层神经网络、卷积神经网络和循环神经网络等深度学习算法,以及TensorFlow并行化输入数据处理流程、TensorBoard可视化工具、TensorFlow高层封装、带GPU的分布式TensorFlow使用方法。在介绍使用TensorFlow实现不同深度学习算法的同时,也介绍了这些算法背后的理论,并列举了这些算法可以解决的具体问题。本书避开了枯燥复杂的数学公式,从实际问题出发,在实践中介绍深度学习的概念和TensorFlow的用法。
本书第1版出版之后,笔者收到了广大读者的踊跃来信。信中既充分肯定了第1版对他们学习TensorFlow和深度学习的帮助,又提出了对更新TensorFlow版本和其他新内容的期待,这正是笔者开始撰写第2版的强大动力。第1版中大部分示例都是与计算机视觉相关的,为了更好地介绍与自然语言处理相关的内容,笔者特别邀请了在Google翻译组工作了5年的梁博文来撰写这部分内容。第2版中将有专门的一个章节介绍语言模型、Seq2Seq模型、注意力(attention)模型等自然语言应用。
TensorFlow是一个飞速发展的工具。第1版在写作时的版本为0.9.0,然而到第1版出版时,谷歌已经推出了TensorFlow的个正式版1.0.0。相比第1版中使用的TensorFlow 0.9.0,TensorFlow 1.0.0以后的版本对API也进行了大量调整,之前的大量示例代码已经无法正常运行。第2版在更新示例API版本的同时,对TensorFlow 0.9.0之后推出的重要新功能也进行了详细介绍,希望能够帮助读者更好地使用TensorFlow。
为了让广大读者更好地理解和使用书中的示例代码,我们为大家提供了一个完全公开的GitHub代码库来维护TensorFlow不同版本的示例程序。该代码库的网址为https://github.com/caicloud/tensorflow-tutorial。笔者衷心地希望各位读者能够从本书中获益,这也是对我们的支持和鼓励。对于书中出现的任何错误或者不准确的地方,欢迎大家批评指正,并发送邮件至[email protected]。
读者也可以登录博文视点官网http://www.broadview.com.cn,下载本书代码或提交勘误信息。一旦勘误信息被作者或编辑确认,即可获得博文视点奖励积分,用于兑换电子书。读者可以随时浏览图书页面,查看已发布的勘误信息。
致谢
在此我要特别感谢为此书做出贡献的每一个人。
首先,我要感谢所有的读者。在第1版出版之后,我收到了大量的读者来信。这些信中表达了对本书内容的喜爱,同时也给出了非常多的宝贵建议。广大读者的支持和鼓励正是我完成第2版的动力。在此,我再次感谢每一位读者,希望第2版中更多的干货值得大家投入宝贵的精力去阅读。
其次,我要感谢加入第2版写作的作者梁博文。在繁重的Google日常工作的同时,梁博文经常深夜撰写自然语言处理的相关内容并调试示例代码,非常辛苦。正是因为梁博文的辛勤付出,才让第2版中的内容更加全面。
后,我要再次感谢在第1版写作过程中给予过我大力支持的所有人。没有他们的支持也就没有这本书的诞生——
在紧张的创业之余,才云科技CEO张鑫给了我极大的支持和鼓励,让我有足够的时间投入到此书第1版的撰写工作中。
我也要感谢我的妻子温苗苗以及我的父母、岳父岳母,没有他们一直以来的支持和帮助,我不可能完成此书的写作。每当遇到困难的时候,长辈们的鼓励是我前进的动力。
后,我还要感谢所有为本书付出心血的电子工业出版社的编辑们。无论在本书的定位,还是在具体的文字推敲、编辑加工、版式设计上,张春雨、刘佳禾和孙奇俏都给予了巨大的帮助。
郑泽宇
2017年12月
终于等到这本TensorFlow技术书的升级。这本书和其他介绍技术框架的书不太一样,它从深度学习简介开始,一点一点深入到TensorFlow的使用,同时把算法和框架的使用结合起来,让读者在了解框架的同时,还能够更深入地了解深度学习算法的原理。示例代码注释详尽,语言风格通俗易懂,算法介绍由浅入深,可谓是难得的好书。
——冯博 TalkingData 数据科学家
本书由浅入深,介绍了TensorFlow在典型场景中的应用实践,提供分布式训练等大量实例,是TensorFlow开发者和深度学习爱好者的优选参考资料。
——陈迪豪 第四范式先知平台架构师
Google的每一次技术发布,都会成为万众瞩目的焦点。TensorFlow从开源到现在,已经吸引了众多开发者、机器学习爱好者、科研和企业用户贡献代码,新功能如雨后春笋般出现,迭代周期之短,响应速度之快,业界少有。其独特的张量(Tensor)和图(Graph)构建算法模型的方式让人耳目一新,给模型设计者更大的自由度。TensorFlow的入门学习资源也琳琅满目,让人无从选择,《TensorFlow:实战Google深度学习框架(第2版)》这本书,从基本概念到完整模型,从抽象理论到工程实现,涵盖了图像、文本领域的常用方法,以及可视化和分布式计算等高级主题,相信开卷之后大有裨益,助力开发者完成产品级应用落地。
——赵永科 阿里云资深研发工程师
Google的深度学习开源方案TensorFlow近年来在人工智能领域被广泛使用并大放异彩。本书不仅对深度神经网络的底层技术做了讲解,还提供了TensorFlow在图像处理、语义理解、性能加速、数据可视化等方面的实战案例,浓缩了大量开发知识和实践经验,是一本非常有参考价值的TensorFlow中文著作。
陈运文 达观数据董事长兼CEO
TensorFlow作为主流的深度学习框架,已经被积极地应用于各类商业产品中,成为机器学习工程师必须了解的知识。本书不仅介绍了深度学习的发展及应用,还提供了环境搭建教程及实际问题的解决技巧。本书避免了晦涩数学公式所带来的负担,通俗易懂。建议想要入门并了解深度学习理论和应用的朋友们阅读!
——赵越 普华永道高级数据科学家
本书作者以美国知名大学读研的学识、Google全职算法专家的经验,从0到1系统地讲解了深度学习以及非常受欢迎的深度学习框架TensorFlow的相关知识,提供了多种场景的应用实例,是深度学习应用领域的代表性作品。
——向光 北京数问科技有限公司创始人、CEO,
Carnegie Mellon University计算机博士
这是一本关于TensorFlow实战的书,通俗易懂,深入浅出,强烈建议大家持卷品读!
——唐建 蒙特利尔大学深度学习算法中心助理教授
开了 –
还好,就是省的时间,省的自己去网上慢慢找资源
韬光隐晦 –
还行吧,讲的不像书名一样好,但是对tensorflow的框架都有基本介绍。
刘克谦 –
刚开始看,作者的观点实在,逻辑扎实,轻松愉快的阅读后引入理论部分,很不错的书
qiqi000000 –
还没看,没啥选的余地,不过人工智能的门槛好高
乐乐陶陶 –
冲着Google这个名词来的,希望能有所收获