《深度学习TensorFlow编程实战》[69M]百度网盘|pdf下载|亲测有效
《深度学习TensorFlow编程实战》[69M]百度网盘|pdf下载|亲测有效

深度学习TensorFlow编程实战 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2020-08
页数 390页
装帧 精装
评分 8.7(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供深度学习TensorFlow编程实战电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

《深度学习TensorFlow编程实战》首先讲述了深度学习的基本原理,了解基本的深度学习算法之后,通过实践来解决经典的问题,逐步过渡到解决实际问题。其次,《深度学习TensorFlow编程实战》精心设计了一些调用不同的TensorFlow API来构建深度网络的实例,读者能亲身体会如何将深度学习理论应用到实际中,加深对深度学习算法的理解和编程能力的提高,逐步掌握深度学习的原理和编程技能,拉近理论与实践的距离。最后,本书专门设有读者QQ群,欢迎读者加群,方便与作者一起探讨书中的技术问题。

内容简介

  《深度学习TensorFlow编程实战》讲述深度学习的基本原理,使用TensorFlow实现涉及的深度学习算法。
  通过理论学习和编程操作,《深度学习TensorFlow编程实战》使读者了解并掌握深度学习的原理和TensorFlow编程技能,拉近理论与实践的距离。
  《深度学习TensorFlow编程实战》共分为10章,主要内容包括TensorFlow介绍、TensorFlow文件操作、BP神经网络原理与实现、TensorFlow基础编程、神经网络训练与优化、卷积神经网络原理、卷积神经网络示例、词嵌入模型、循环神经网络原理、循环神经网络示例。
  《深度学习TensorFlow编程实战》源码全部在TensorFlow1.13版本上调试成功。
  《深度学习TensorFlow编程实战》内容较全面、可操作性强,做到了理论与实践相结合。
  《深度学习TensorFlow编程实战》适合深度学习和TensorFlow编程人员作为入门和提高的技术参考书,也适合用作计算机专业高年级本科生和研究生的教材或教学参考书。

作者简介

袁梅宇,北航工学博士,硕士导师,现在昆明理工大学计算机系任教。为本科生和研究生主讲Java程序设计、Java EE技术、数据库原理、人工智能、Dot Net技术等核心课程,参加过863 CIMS Net建设、中欧合作项目DRAGON和多项国家基金和省基金项目,第一作者公开发表论文十余篇,软件著作权(颁证)六项。第一作者专著有《Java EE企业级编程开发实例详解》、《数据挖掘与机器学习——WEKA应用技术与实践》(第一版、第二版)、《求精要诀——Java EE编程开发案例精讲》。

内页插图

目录

第1章 TensorFlow介绍 1

1.1 深度学习与TensorFlow简介 2

1.1.1 深度学习简介 2

1.1.2 TensorFlow简介 3

1.2 TensorFlow的安装 6

1.2.1 Anaconda下载 6

1.2.2 在Windows平台安装TensorFlow 7

1.2.3 在Linux Ubuntu下安装TensorFlow 8

1.2.4 Anaconda管理 9

1.3 常用数据集 13

1.3.1 MNIST数据集 13

1.3.2 Fashion-MNIST数据集 14

1.3.3 IMDB数据集 16

1.3.4 CIFAR-10数据集 18

1.3.5 REUTERS数据集 20

1.3.6 QIQC数据集 22

1.3.7 Dogs vs. Cats数据集 23

第2章 TensorFlow文件操作 25

2.1 CSV文件操作 26

2.1.1 读取CSV文件 26

2.1.2 生成CSV文件 27

2.2 编写网络下载程序 28

2.3 TFRecords文件操作 30

2.3.1 生成TFRecords文件 30

2.3.2 读取TFRecords文件 33

2.4 数据集API 35

2.4.1 数据集对象 35

2.4.2 读取内存数据 36

2.4.3 读取文本文件 38

2.4.4 读取CSV文件 39

2.4.5 读取图像文件 41

第3章 BP神经网络原理与实现 45

3.1 神经网络构件 46

3.1.1 神经元 46

3.1.2 激活函数 47

3.2 神经网络原理 52

3.2.1 神经网络表示 52

3.2.2 前向传播 54

3.2.3 代价函数 58

3.2.4 梯度下降 58

3.2.5 反向传播 60

3.3 BP神经网络的Python实现 62

3.3.1 辅助函数 62

3.3.2 前向传播实现 66

3.3.3 反向传播实现 68

3.3.4 模型训练和预测 72

3.3.5 主函数和运行结果 74

3.4 BP神经网络的TensorFlow实现 76

3.4.1 加载数据集 76

3.4.2 模型训练和预测 77

第4章 TensorFlow基础编程 79

4.1 TensorFlow的编程环境 80

4.2 TensorFlow计算图 81

4.3 核心概念 81

4.3.1 变量与占位符 81

4.3.2 矩阵运算 85

4.3.3 常用运算符 86

4.3.4 图、会话及运行 87

4.4 通过实例学习TensorFlow 90

4.4.1 异或问题描述与解决思路 90

4.4.2 低级API解决异或问题 91

4.4.3 用Keras解决异或问题 93

4.4.4 用Estimators解决异或问题 94

4.5 一个简单的文本分类示例 97

4.6 TensorBoard可视化工具 101

4.6.1 启动TensorBoard 101

4.6.2 在浏览器中查看 103

第5章 神经网络训练与优化 107

5.1 神经网络迭代概述 108

5.1.1 训练误差与泛化误差 108

5.1.2 训练集、验证集和测试集的划分 109

5.1.3 偏差与方差 111

5.2 正则化方法 112

5.2.1 提前终止 113

5.2.2 正则化 113

5.2.3 Dropout 115

5.3 优化算法 117

5.3.1 小批量梯度下降 117

5.3.2 Momentum算法 119

5.3.3 RMSProp算法 121

5.3.4 Adam算法 124

第6章 卷积神经网络原理 127

6.1 CNN介绍 128

6.1.1 CNN与图像处理 128

6.1.2 卷积的基本原理 128

6.1.3 池化的基本原理 138

6.2 Keras实现LeNet-5网络 142

6.2.1 LeNet-5介绍 142

6.2.2 使用Keras实现LeNet-5网络 143

6.3 用Estimator实现CIFAR-10图像识别 147

6.3.1 预创建的Estimator 147

6.3.2 定制 Estimator 151

6.3.3 用TensorBoard查看 157

第7章 卷积神经网络示例 161

7.1 经典CNN案例 162

7.1.1 VGG 162

7.1.2 ResNet 163

7.1.3 Inception 165

7.1.4 Xception 168

7.2 使用预训练的CNN 169

7.2.1 直接使用预训练CNN 169

7.2.2 数据生成器 172

7.2.3 特征提取 173

7.2.4 微调 181

7.3 CNN可视化 183

7.3.1 中间激活可视化 183

7.3.2 过滤器可视化 190

第8章 词嵌入模型 195

8.1 词嵌入模型介绍 196

8.1.1 独热码 196

8.1.2 词嵌入 202

8.2 词嵌入学习 204

8.2.1 词嵌入学习的动机 204

8.2.2 Skip-Gram算法 205

8.2.3 CBOW算法 207

8.2.4 负采样 208

8.2.5 GloVe算法 211

8.3 Word2Vec算法实现 212

8.3.1 Skip-Gram算法实现 212

8.3.2 CBOW算法实现 218

8.3.3 负采样Skip-Gram算法实现 220

第9章 循环神经网络原理 229

9.1 RNN介绍 230

9.1.1 有记忆的神经网络 230

9.1.2 RNN的用途 233

9.2 基本的RNN模型 236

9.2.1 基本RNN的原理 236

9.2.2 基本RNN的训练问题 241

9.2.3 基本RNN示例 243

9.3 LSTM 246

9.3.1 LSTM原理 246

9.3.2 LSTM示例 250

9.4 GRU 251

9.4.1 GRU原理 251

9.4.2 GRU示例 253

第10章 循环神经网络示例 255

10.1 情感分析 256

10.2 文本序列数据生成 262

10.2.1 向莎士比亚学写诗 262

10.2.2 神经机器翻译 268

参考文献 282


精彩书摘

1.1 深度学习与TensorFlow简介
本节首先介绍深度学习的发展简史,简单列举了深度学习在图像和自然语言处理方向的技术,然后介绍TensorFlow的开发环境。
1.1.1 深度学习简介
深度学习有望成为实现人工智能的最佳途径,未来正沿着大型神经系统的方向发展。在许多其他领域都能看到深度学习的巨大进步,如谷歌DeepMind团队研发的人工智能程序AlphaGo战胜世界围棋名将李世石,最强最新AlphaGo Zero的横空出世,无人驾驶公交客车正式上路,等等。相比这些新闻,我们也许更关心其背后的支撑技术,深度学习就是AlphaGo和无人驾驶等背后的重要技术。
深度学习已经广泛地应用在计算机视觉、自然语言处理等人工智能领域中,极大地推动了人工智能的发展。但深度学习的发展并不是一帆风顺的,经历过几次高潮和低谷,是一段漫长的发展史。回顾深度学习的发展历程有助于了解深度学习领域。
最早的神经网络起源于1943年由麦卡洛克和皮兹提出的MCP(作者姓名McCulloch和Pitts的缩写)神经元模型,包括多个输入参数和权重、内积运算和二值激活函数等神经网络的要素。
1958年,罗森布拉特(Rosenblatt)发明了感知器(perceptron)算法,感知器能够对输入的多维数据进行二元分类,且能够从训练样本中自动学习更新权值。感知器对神经网络的发展具有里程碑式的意义,引发神经网络的第一次热潮。
1969年,明斯基(Minsky)证明感知器本质上是一种线性模型,只能处理线性分类问题,甚至连最简单的异或(XOR)问题都无法正确解决。神经网络进入第一个寒冬期,研究陷入近20年的停滞。
1986年,辛顿(Hinton)发明多层感知器的反向传播(BP)算法,解决了非线性分类和参数学习的问题。神经网络再次引起人们广泛的关注,引发神经网络的第二次热潮。
1991年,人们发现,当神经网络的层数增加时,BP算法会出现“梯度消失”的问题,无法对前层进行有效的学习,并且20世纪90年代中期以支持向量机(SVM)为代表的机器学习算法取得很好的效果,使得神经网络的发展再次进入衰退期。
2006年,辛顿等人正式提出深度学习的概念,并且在世界顶级学术期刊Science中提出深层网络训练中梯度消失问题的解决方案:使用无监督学习方法逐层训练算法,再使用有监督反向传播算法进行调优。这在学术圈引起了巨大的反响。
2012年,辛顿课题组参加ImageNet图像识别比赛,采用深度学习模型AlexNet一举夺冠,碾压第二名的SVM方法,深度学习吸引了很多研究者的注意。在随后的三年中,深度学习不断在ImageNet比赛中取得进步。
2016年,谷歌公司基于深度学习技术,研发的AlphaGo以4∶1的比分战胜国际顶尖围棋高手李世石,证明在围棋界,基于深度学习技术的计算机已经超越了人类。
2017年,基于强化学习算法的AlphaGo的升级版——AlphaGo Zero诞生,它采用自对弈强化学习的学习模式,完全从随机落子开始,不再使用人类棋谱,AlphaGo Zero轻易打败先前的AlphaGo。
除了以上的图像领域和围棋领域,深度学习在自然语言处理领域也取得了显著的成果。例如,词向量(Word2Vec)已经成为自然语言处理的核心,其基本思想是把人类语言中的字或词转换为维度可控的机器容易理解的稠密向量,容易计算出词与词之间的相互关系,因而在机器翻译、情感分析等方向取得很好的效果。LSTM、GRU、注意力机制、ELMo、Transformer、BERT、GPT和GPT2等新模型、新方法令人目不暇接,基于深度学习的自然语言处理在机器翻译、智能问答和聊天机器人等方向都取得惊人的成就。
总之,今天的深度学习已经越来越趋于成熟,尽管在落地应用上还需要解决许多实际问题,但深度学习无疑是有趣和有挑战性的充满希望的新兴领域。
1.1.2 TensorFlow简介
TensorFlow框架是谷歌公司开发的最受欢迎的端到端深度学习平台,是一个用Python、C++和CUDA语言编写的免费开源软件库,广泛用于语音识别、计算机视觉、自然语言处理等各种深度学习网络。从2010年开始,谷歌大脑(Google Brain)团队开发TensorFlow的前身DistBelief,作为在谷歌内部使用的第一代机器学习系统。后来谷歌指派著名计算机科学家Geoffrey Hinton和Jeff Dean,对DistBelief的代码库进行了简化和重构,使之成为一个更快、更健壮的应用级别代码库——TensorFlow,于2015年11月9日在Apache 2.0开源许可证下发布。
TensorFlow是谷歌大脑团队的第二代系统,其1.0.0版本于2017年2月11日发布。除了在单机上运行外,TensorFlow支持模型的分布式训练,支持模型的多机多卡(多个CPU和GPU)。分布式系统可以实现在上百个GPU上训练一个模型,可以大大减少训练时间,研究人员从而有更多的机会去尝试各种超参数组合。
TensorFlow支持64位Linux、MacOS和Windows操作系统,甚至还可以运行在包括Android和iOS的移动计算平台上。
TensorFlow提供了稳定的Python API (适用于所有平台的Python 3.7版)和C API,以及C++、Go、Java、JavaScript和早期版本的Swift等没有向后兼容性保证的API。TensorFlow对Python支持更多,因此Python API提供了更多的功能。另外,TensorFlow还提供TensorFlow.js、TensorFlow Lite和TensorFlow Extended库。TensorFlow.js是一个JavaScript库,用于在浏览器和Node.js上训练和部署模型。TensorFlow Lite是一个精简库,用于在移动设备和嵌入式设备上部署模型。TensorFlow Extended是一个端到端平台,用于在大型生产环境中准备数据以及训练、验证和部署模型。
尽管TensorFlow在业界堪称一枝独秀,但仍然受到很多竞争者的冲击,尤其是PyTorch和Keras。图1.1所示为杰夫· 黑尔(Jeff Hale)于2019年4月发表的博文Which Deep Learning Framework is Growing Fastest?中统计得到的在线工作增长的数据,说明TensorFlow的工作机会仍然排列第一。

前言/序言

前言

深度学习是机器学习中最激动人心的领域,深度学习算法工程师、图像视觉工程师和自然语言处理工程师逐渐成为报酬高的新兴职业,各行各业的公司都在寻求具备深度学习理论知识和TensorFlow编程技能的人才。只有具备深度学习相关理论和实践技能,才更有可能在上述新兴职业中获得成功,但是学习和掌握神经网络、卷积神经网络、循环神经网络等深度学习理论具有一定的难度,同时掌握TensorFlow等常用深度学习工具更显得困难重重,因此一本容易上手的深度学习入门书籍肯定会对初学者有很大帮助。本书就是专门为初学者精心编写的。

初学者学习深度学习理论与TensorFlow编程技术一般都会面临两大障碍。第一大障碍是深度学习理论基础。深度学习包含很多需要掌握的基本概念,如神经元、全连接、Dropout、Normalizing、权重初始化、优化算法、卷积神经网络、卷积层、池化层、残差网络、Inception网络、迁移学习、循环神经网络、LSTM、GRU、双向循环神经网络、词嵌入、Word2Vec、GloVe、注意力机制等,学习和理解这些概念需要花费大量的时间和精力,学习周期漫长。第二大障碍是编程实践。TensorFlow是一个非常庞大的开源平台,拥有一个包含各种工具、库和社区资源的全面、灵活的生态系统。即便使用最为流行的Python接口,也有多种API可选,如低级TensorFlow API、Estimators和Keras,这三种API使得学习TensorFlow编程更为困难,学习曲线陡且应用中会不断遇到新问题。

本书就是为了让初学者顺利入门而设计的。首先,本书讲述深度学习的基本原理。了解基本的深度学习算法之后,通过实践来解决经典的问题,逐步过渡到解决实际问题。其次,本书精心设计了一些调用不同的TensorFlow API来构建深度网络的实例,读者能亲身体会如何将深度学习理论应用到实际中,加深对深度学习算法的理解,提高编程能力,逐步掌握深度学习的原理和编程技能,拉近理论与实践的距离。最后,本书专门设有读者QQ群,群号为278724996,欢迎读者加群,下载书中源代码,与作者直接对话,探讨书中技术问题。

本书共分为10章。第1章介绍深度学习和TensorFlow的基本概念、TensorFlow的安装和常用数据集;第2章介绍TensorFlow文件操作,主要内容包括CSV文件操作、编写网络下载程序、TFRecords文件操作和数据集API;第3章介绍BP神经网络原理与实现,主要内容包括BP神经网络介绍、神经网络原理、BP神经网络的Python实现、BP神经网络的TensorFlow实现;第4章介绍TensorFlow基础编程,主要内容包括TensorFlow的编程环境、TensorFlow计算图、核心概念、通过实例学习TensorFlow、一个简单的文本分类示例和TensorBoard可视化工具;第5章介绍神经网络训练与优化,主要内容包括神经网络迭代概念、正则化方法、优化算法;第6章介绍卷积神经网络原理,主要内容包括CNN的基本概念、Keras实现LeNet-5网络、Estimator实现CIFAR-10图像识别;第7章为卷积神经网络示例,主要内容包括CNN案例介绍、使用预训练的CNN算法以及CNN可视化;第8章介绍词嵌入模型,主要内容包括词嵌入模型介绍、词嵌入学习、Word2Vec算法实现;第9章介绍循环神经网络原理,主要内容包括RNN介绍、基本的RNN模型、LSTM、GRU以及对应的API介绍;第10章为循环神经网络示例,主要内容包括情感分析、文本序列数据生成。

感谢昆明理工大学提供的研究和写作环境。感谢清华大学出版社的编辑老师在出版方面提出的建设性意见和给予的无私帮助;特别感谢出版社的魏莹老师,没有她的大力支持、帮助和鼓励,这本书不一定能够面世。感谢读者群的一些未见面的群友,他们对作者以前的著作提出宝贵的建议并鼓励作者撰写更多更好的技术书籍,虽然我无法一一列举姓名,但他们的帮助我会一直铭记在心。感谢购买本书的朋友,欢迎批评指正,你们的批评建议都会受到重视,并在将来再版中改进。

作者在写作中付出很多精力和劳动,但限于作者的学识、能力和精力,书中难免存在一些缺陷,甚至错误,敬请各位读者批评指正。


袁梅宇

于昆明理工大学