《Keras快速上手:基于Python的深度学习实战》谢梁【文字版_PDF电子书_推荐】

| 书名:Keras快速上手:基于Python的深度学习实战 作者:谢梁/鲁颖/劳虹岚 出版社:电子工业出版社 译者:无 出版日期:2017-8 页数:272 ISBN:9787121318726 |
4.8 豆瓣评分 |
孔网购买 | 点击喜欢 | 全网资源sm.nayona.cn |
内容简介:
本书系统地讲解了深度学习的基本知识、建模过程和应用,并以深度学习在推荐系统、图像识别、自然语言处理、文字生成和时间序列中的具体应用为案例,详细介绍了从工具准备、数据获取和处理到针对问题进行建模的整个过程和实践经验,是一本非常好的深度学习入门书。
不同于许多讲解深度学习的书籍,本书以实用为导向,选择了 Keras 作为编程框架,强调简单、快速地设计模型,而不去纠缠底层代码,使得内容相当易于理解,读者可以在 CNTK、 TensorFlow 和 Theano 的后台之间随意切换,非常灵活。并且本书能帮助读者从高度抽象的角度去审视业务问题,达到事半功倍的效果。
作者简介:
谢梁
现任微软云计算核心存储部门首席数据科学家,主持运用机器学习和人工智能方法优化大规模高可用性并行存储系统的运行效率和改进其运维方式。具有十余年机器学习应用经验,熟悉各种业务场景下机器学习和数据挖掘产品的需求分析、架构设计、算法开发和集成部署,涉及金融、能源和高科技等领域。曾经担任美国道琼斯工业平均指数唯一保险业成分股的旅行家保险公司分析部门总监,负责运用现代统计学习方法优化精算定价业务和保险运营管理,推动精准个性化定价解决方案。在包括Journal of Statistical Software等专业期刊上发表过多篇论文,担任Journal of Statistical Computation and Simulation期刊以及Data Mining Applications with R一书的审稿人。本科毕业于西南财经大学经济学专业,博士毕业于纽约州立大学计量经济学专业。
鲁颖
现任谷歌硅谷总部数据科学家,为谷歌应用商城提供核心数据决策分析,利用机器学习和深度学习技术建立用户行为预测模型,为产品优化提供核心数据支持。曾在亚马逊、微软和迪士尼美国总部担任机器学习研究科学家,有着多年使用机器学习和深度学习算法研发为业务提供解决方案的经验。热衷于帮助中国社区的人工智能方面的研究和落地,活跃于各个大型会议并发表主题演讲。本科毕业于复旦大学数学专业,博士毕业于明尼苏达大学统计专业。
劳虹岚
现任微软研究院研究工程师,是早期智能硬件项目上视觉和语音研发的核心团队成员,对企业用户和消费者需求体验与AI技术的结合有深刻的理解和丰富的经验。曾在Azure和Office 365负责处理大流量高并发的后台云端研究和开发,精通一系列系统架构设计和性能优化方面的解决方案。拥有从前端到后端的丰富经验:包括客户需求判断、产品开发以及最终在云端架构设计和部署。本科毕业于浙江大学电子系,硕士毕业于美国南加州大学(USC)电子和计算机系。
目 录:
目录
1 准备深度学习的环境 1
1.1 硬件环境的搭建和配置选择 . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 通用图形处理单元 . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 你需要什么样的 GPU 加速卡 . . . . . . . . . . . . . . . . . . . . 6
1.1.3 你的 GPU 需要多少内存 . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 是否应该用多个 GPU . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 安装软件环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 所需软件列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.2 CUDA 的安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.3 Python 计算环境的安装 . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.4 深度学习建模环境介绍 . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.5 安装 CNTK 及对应的 Keras . . . . . . . . . . . . . . . . . . . . . 17
1.2.6 安装 Theano 计算环境 . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.7 安装 TensorFlow 计算环境 . . . . . . . . . . . . . . . . . . . . . . 25
1.2.8 安装 cuDNN 和 CNMeM . . . . . . . . . . . . . . . . . . . . . . . 27
2 数据收集与处理 28
2.1 网络爬虫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.1 网络爬虫技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.2 构造自己的 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.3 构造可接受参数的 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . 35
2.1.4 运行 Scrapy 爬虫 . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.5 运行 Scrapy 爬虫的一些要点 . . . . . . . . . . . . . . . . . . . . . 38
2.2 大规模非结构化数据的存储和分析 . . . . . . . . . . . . . . . . . . . . . 40
2.2.1 ElasticSearch 介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.2 ElasticSearch 应用实例 . . . . . . . . . . . . . . . . . . . . . . . . 44
3 深度学习简介 57
3.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 深度学习的统计学入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 一些基本概念的解释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.3.1 深度学习中的函数类型 . . . . . . . . . . . . . . . . . . . . . . . . 62
3.3.2 深度学习中的其他常见概念 . . . . . . . . . . . . . . . . . . . . . 65
3.4 梯度递减算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.5 后向传播算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4 Keras 入门 72
4.1 Keras 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2 Keras 中的数据处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.1 文字预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.2 序列数据预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2.3 图片数据输入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3 Keras 中的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4 Keras 中的重要对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.5 Keras 中的网络层构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.6 使用 Keras 进行奇异值矩阵分解 . . . . . . . . . . . . . . . . . . . . . . . 102
5 推荐系统 105
5.1 推荐系统简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.2 矩阵分解模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.3 深度神经网络模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.4 其他常用算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.5 评判模型指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6 图像识别 121
6.1 图像识别入门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.2 卷积神经网络的介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.3 端到端的 MNIST 训练数字识别 . . . . . . . . . . . . . . . . . . . . . . . 127
6.4 利用 VGG16 网络进行字体识别 . . . . . . . . . . . . . . . . . . . . . . . 131
6.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7 自然语言情感分析 136
7.1 自然语言情感分析简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.2 文字情感分析建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.2.1 词嵌入技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.2.2 多层全连接神经网络训练情感分析 . . . . . . . . . . . . . . . . . 140
7.2.3 卷积神经网络训练情感分析 . . . . . . . . . . . . . . . . . . . . . 143
7.2.4 循环神经网络训练情感分析 . . . . . . . . . . . . . . . . . . . . . 144
7.3 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8 文字生成 147
8.1 文字生成和聊天机器人 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.2 基于检索的对话系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.3 基于深度学习的检索式对话系统 . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.1 对话数据的构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.3.2 构造深度学习索引模型 . . . . . . . . . . . . . . . . . . . . . . . . 162
8.4 基于文字生成的对话系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
9 时间序列 173
9.1 时间序列简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.2 基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.3 时间序列模型预测准确度的衡量 . . . . . . . . . . . . . . . . . . . . . . . 178
9.4 时间序列数据示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9.5 简要回顾 ARIMA 时间序列模型 . . . . . . . . . . . . . . . . . . . . . . . 181
9.6 循环神经网络与时间序列模型 . . . . . . . . . . . . . . . . . . . . . . . . 186
9.7 应用案例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.7.1 长江汉口月度流量时间序列模型 . . . . . . . . . . . . . . . . . . 190
9.7.2 国际航空月度乘客数时间序列模型 . . . . . . . . . . . . . . . . . 203
9.8 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10 智能物联网 210
10.1 Azure 和 IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
10.2 Azure IoT Hub 服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10.3 使用 IoT Hub 管理设备概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.4 使用.NET 将模拟设备连接到 IoT 中心 . . . . . . . . . . . . . . . . . . . . 218
10.5 机器学习应用实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
浏览器不支持脚本!
摘要:在深度学习技术席卷全球的浪潮中,Keras以其简洁、高效、模块化的特性,成为入门者与从业者首选的框架之一。谢梁所著的《Keras快速上手:基于Python的深度学习实战》一书,恰如一座连接理论与实践的坚实桥梁。本书不仅系统梳理了深度学习核心概念,更通过大量可复现的Python代码实例,引导读者从零构建神经网络模型。无论是图像识别、自然语言处理还是序列预测,书中均提供了清晰的实现路径。其文字版PDF电子书因便于检索与携带,广受学习者推崇。本文将从书籍的编排逻辑、技术深度、实战价值与学习体验四个维度,深入剖析这部作品的独特魅力,揭示其为何能成为计算机类书籍中的推荐之作,并为读者呈现一条高效掌握Keras的进阶之路。
1、编排逻辑清晰严谨
本书在结构设计上展现出极高的教学智慧,开篇并未急于引入复杂算法,而是从环境搭建与基本概念入手,为读者打下坚实基础。第一章详细介绍了Keras的安装流程、后端配置以及张量、层、模型等核心术语,这种由浅入深的安排,极大降低了初学者的认知门槛。每一个新概念的引入都配有简短的代码片段,使抽象理论瞬间变得可触可感。
随后的章节遵循“从简单到复杂”的递进原则,依次讲解了全连接网络、卷积神经网络与循环神经网络。这种线性推进的叙事方式,让读者能够逐步构建起对深度学习的整体认知框架。特别值得称道的是,作者在每个章节末尾都设计了针对性的练习题,这些题目并非单纯重复书本内容,而是要求读者对代码进行修改或扩展,从而强化理解与记忆。
全书共分为十个章节,内容覆盖了数据预处理、模型编译、训练调优以及模型保存与加载等完整流程。这种闭环式的编排,使得读者在读完最后一章后,已经具备独立完成一个深度学习项目的能力。无论从教学节奏还是内容衔接来看,本书的编排逻辑都堪称教科书级别的典范。
2、技术剖析深入浅出
对于深度学习中的关键技术点,作者并未满足于表面介绍,而是力求揭示其内在原理。例如在讲解卷积神经网络时,书中不仅演示了如何用Keras搭建卷积层与池化层,还通过可视化手段展示了卷积核的权重变化与特征图提取过程。这种“知其然更知其所以然”的写作态度,帮助读者摆脱了机械调用API的局限。
在损失函数与优化器的选择上,作者对比了SGD、Adam、RMSprop等主流优化器的数学本质与适用场景,并给出了具体的调参建议。这些内容对于初学者而言尤为珍贵,因为很多人在实践中往往因参数设置不当而导致模型不收敛。书中通过大量对比实验,直观展示了不同设置对训练结果的影响,让读者能够快速掌握调试技巧。
此外,本书对过拟合、梯度消失与爆炸等常见问题也进行了深入剖析。作者不仅解释了这些问题的成因,还提供了Dropout、Batch Normalization、正则化等多种解决方案,并附带了完整的代码实现。这种理论与实践紧密结合的写作手法,使得技术剖析既有深度又不失可读性,堪称深入浅出的典范。
3、实战案例丰富详实
本书最大的亮点在于其丰富的实战案例,这些案例全部基于真实数据集,而非虚构的玩具数据。从经典的MNIST手写数字识别,到CIFAR-10图像分类,再到IMDb情感分析,每个案例都完整展示了数据加载、模型构建、训练评估与结果可视化的全过程。这种沉浸式的学习方式,让读者仿佛置身于真实的项目开发环境中。
在自然语言处理章节,作者详细演示了如何使用Keras构建词嵌入层与LSTM网络,完成文本分类与序列生成任务。这些案例不仅涵盖了数据预处理中的分词、序列填充等关键技术,还针对文本数据特有的稀疏性与长距离依赖问题给出了优化方案。读者通过亲手运行这些代码,能够迅速掌握处理文本数据的基本套路。
更令人印象深刻的是,书中还包含了一个完整的迁移学习案例,展示了如何利用预训练的VGG16模型进行图像风格迁移。这个案例不仅技术含量高,而且趣味性十足,能够极大激发学习者的兴趣。所有案例的代码均可在配套资源中找到,并且经过精心调试,确保可复现。这种对实战细节的极致追求,使得本书成为一本不可多得的操作指南。
4、学习体验便捷高效
作为一本以“快速上手”为目标的书籍,本书在提升学习体验方面下足了功夫。每个章节都配有清晰的代码注释与运行结果截图,读者可以随时对照检查自己的理解是否正确。这种图文并茂的呈现方式,大大降低了阅读过程中的认知负荷,使得自学变得更为顺畅。
本书的文字版PDF电子书格式尤为值得称道,其排版精美,代码部分采用等宽字体并带有行号,方便读者定位与引用。电子书的可检索特性,使得读者能够快速找到所需知识点,极大地提升了查阅效率。无论是作为系统学习的教材,还是作为日常工作的参考手册,这种格式都显得游刃有余。
此外,作者在书中还穿插了大量“注意事项”与“常见错误”提示,这些都是基于真实教学经验总结出的宝贵心得。例如在配置GPU环境时可能遇到的驱动问题,或者在定义模型时容易犯的形状错误,书中都给出了明确的解决方案。这些贴心设计,让读者在遇到挫折时能够迅速找到出路,从而保持学习的连贯性与积极性。
总结:通览全书,谢梁的这部作品完美诠释了“快速上手”这一核心诉求。它没有陷入理论推导的泥潭,而是始终聚焦于如何用Keras高效解决实际问题。从环境搭建到模型部署,从基础网络到高级架构,书中每一个环节都经过精心设计,旨在让读者在最短时间内获得最大的收获。对于渴望踏入深度学习领域的初学者而言,本书无疑是一把打开新世界大门的金钥匙。而对于已有一定基础的从业者,它同样是一部值得常备案头的实战手册。通过阅读与实践,读者不仅能掌握Keras这一强大工具,更能建立起一套系统化的深度学习思维模式。
在人工智能技术日新月异的今天,拥有一本能够真正指导实践的书籍显得尤为重要。《Keras快速上手:基于Python的深度学习实战》正是这样一部作品,它用清晰的逻辑、扎实的技术、丰富的案例与贴心的设计,为读者铺就了一条从入门到精通的坦途。无论你是学生、研究员还是工程师,都能从中汲取到宝贵的知识与灵感。现在,就让我们翻开这本书,开启属于自己的深度学习之旅吧。
本文由nayona.cn整理
该网站所有的联系方式,都是工作人员微信,加不上就联系其他号, 联系我们v;shuij56
