首页>参考读物>计算机科学与技术>人工智能

PyTorch深度学习实战
作者 : [美]谢林·托马斯(Sherin Thomas)苏丹舒·帕西(Sudhanshu Passi)著
译者 : 马恩驰 陆健 译
出版日期 : 2020-06-12
ISBN : 978-7-111-65736-1
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 237
开本 : 16
原书名 : PyTorch Deep Learning Hands-On
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

第1章介绍了 PyTorch 进行深度学习的方法以及 PyTorch 的基本 API;第2章通过构建一个简单神经网络,演示如何将神经网络、优化器和参数更新联接在一起,构建简单深度学习模型;第3章深入探讨深度学习工作流实现以及帮助构建工作流的 PyTorch 生态系统;第4章介绍基于CNN的应用;第5章介绍主要RNN组件;第6章简要地论述了生成网络的历史,然后解释了不同种类的生成网络;第7章介绍了强化学习;第8章探讨不同的生产部署选项。

图书特色

图书前言

本书帮助读者快速深入深度学习。在过去的几年里,我们看到深度学习成了新的动力。它从学术界一路进军到工业领域,帮助解决了数千个难题。没有它,人类永远无法想象如何解决这些难题。深度学习的应用主要是由一组框架推动的,这些框架可靠地将复杂的算法转化为高效的内置方法。本书展示了PyTorch 在构建深度学习模型原型、深度学习工作流以及将原型模型用于生产方面的优势。总体而言,本书专注于 PyTorch 的实际实现,而不是解释它背后的数学原理。但本书也会给出一些链接,这些链接会补充一些相关概念。
本书适合谁
我们没有尽可能多地解释算法,而是专注于PyTorch中的算法实现,并着眼于使用这些算法的实际应用程序的实现。本书非常适合知道如何在 Python 中编程并了解深度学习基础知识的读者。本书面向具有传统机器学习实践经验,或希望在实践中探索深度学习世界并将其实现部署到生产中的开发人员。
本书包含哪些内容
第1章介绍使用PyTorch进行深度学习的方法以及 PyTorch 的基本 API。本章介绍PyTorch 的历史,以及为什么 PyTorch 应该成为深度学习发展的首选框架,还介绍后续章节中将讨论的不同深度学习方法。
第2章将帮助你构建第一个简单神经网络,并演示如何将神经网络、优化器和参数更新连接在一起以构建简单深度学习模型。本章还介绍PyTorch如何进行反向传播,这是所有先进的深度学习算法背后的关键。
第3章深入探讨深度学习工作流的实现以及帮助构建工作流的 PyTorch 生态系统。如果你计划为项目建立深度学习团队或流程,那么这可能是最关键的一章。在本章中,我们将介绍深度学习流程的不同阶段,并介绍PyTorch 社群如何通过制定适当的工具来在工作流的每个阶段迭代地进行优化。
第4章讨论迄今为止深度学习最成功的结果—计算机视觉成功背后的关键思想,并将介绍使用最广泛的视觉算法—卷积神经网络(CNN)。我们将逐步实现 CNN 以理解其工作原理,然后使用 PyTorch 的 nn包中预定义的CNN。本章将帮助你实现一个简单的CNN和一种先进的基于CNN的视觉算法—语义分割。
第5章着眼于循环神经网络,这是目前最成功的序列数据处理算法。本章将首先介绍主要的 RNN 组件,如长短期记忆(LSTM)网络和门控循环单元(GRU)。然后,我们将在探索递归神经网络之前对RNN 实现中的算法做一些更改,如双向 RNN,并增加层数。为了理解递归网络,我们将使用斯坦福 NLP 团队的著名示例,即堆栈增强解析器–解释器神经网络 (SPINN),并在 PyTorch 中实现该示例。
第6章简要介绍生成网络的历史,然后讨论不同种类的生成网络,包括自动回归模型和 GAN。我们将在6.2节讨论 PixelCNN 和 WaveNet 的实现细节,然后详细讨论 GAN。
第7章介绍强化学习的概念—但它并不是深度学习的一个子类别。我们将首先了解如何定义问题,然后将探讨累积奖励的概念。我们将探讨马尔可夫决策过程和贝尔曼方程,然后介绍深度Q学习。我们还将介绍Gym,它是 OpenAI 开发的用于开发和试验强化学习算法的工具包。
第8章着眼于人们(甚至深度学习专家)在将深度学习模型部署到生产时所遇到的难题。我们将探讨不同的生产部署选项,包括围绕PyTorch 使用 Flask封装器以及使用 RedisAI。RedisAI是一个高度优化的运行器,用于在多群集环境中部署模型,每秒可以处理数百万个请求。
如何使用本书
本书中的代码以 Python 编写,托管在 GitHub 上。尽管有压缩的代码存储库可供下载,但在线GitHub 存储库将收到 bug 修复和更新。因此,读者既有必要对GitHub 有基本的了解,也有必要具备Python的基础知识。
虽然不是必需的,但使用 CUDA 驱动程序将有助于加快训练过程(如果不使用任何预先训练的模型)。
本书中的代码示例虽然是在 Ubuntu 18.10 计算机上开发的,但适用于所有流行的平台。但是,如果你遇到任何困难,请随时在 GitHub 中提出问题。
本书中的一些示例要求使用其他服务或包,如 redis-server 和 Flask 框架。所有这些外部依赖项和“方法”指南都记录在其出现的章节中。
下载示例代码及彩色图像
本书的示例代码及所有截图和图表,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
下载文件后,请确保使用最新版本的解压文件:
WinRAR / 7-Zip 用于Windows
Zipeg / iZip / UnRarX 用于 macOS
7-Zip / PeaZip 用于 Linux
本书的代码包也托管在GitHub中,网址为https://github.com/hhsecond/Hands OnDeepLearningWithPytorch。

上架指导

计算机/人工智能/深度学习与神经网络

封底文字

PyTorch是一个崭新的、轻量级的、以Python为优先开发语言的深度学习框架。PyTorch由Facebook开发,以其灵活性和高效性迅速成为深度学习专家的首选。 PyTorch可以帮助你快速完成深度学习模型的开发。
本书介绍了如何基于PyTorch框架实现主要的深度学习模型。本书从简单的神经网络开始,内容涵盖了CNN、RNN、GAN和强化学习。你也可以基于PyTorch框架构建深度学习工作流,把基于Python构建的模型迁移到更高效的TorchScript,并使用复杂的工具将其部署到生产环境中。
如果你想成为深度学习专家,那么本书很适合你。
通过本书,你将学习使用PyTorch来构建:
简单神经网络——基于PyTorch高阶函数、优化器及更多方法来构建神经网络。
卷积神经网络——构建高级计算机视觉系统。
循环神经网络——处理自然语言和音频等序列数据。
生成对抗网络——创建包含简单GAN和CycleGAN模型的新内容。
强化学习——开发能解决诸如自动驾驶和游戏博弈等复杂问题的系统。
深度学习工作流——基于PyTorch及其实用程序包,通过深度学习工作流将想法有效地用于生产。
生产就绪模型——将模型打包以用于高性能生产环境。

译者序

随着深度学习在计算机视觉、自然语言处理、语音识别及分割领域的日益火爆,对于算法从业人员来说,熟练掌握并应用一种深度学习框架已成为必备技能。在众多深度学习框架中,目前主流的是PyTorch和TensorFlow。尽管TensorFlow在工业界的应用有诸多优势,但依然有很多研究人员从TensorFlow转向PyTorch。PyTorch以其易于调试、具有动态计算图等特性备受学术界关注。
关于PyTorch和TensorFlow的框架之争从未停止过。工业应用更倾向于TensorFlow,而学术研究更倾向于PyTorch。学术研究人员关心的是研究中算法迭代速度有多快,其应用场景通常是在相对较小的数据集上,最大的限制因素不是性能,而是快速实现并验证假设的能力。相反,工业界认为性能是需要优先考虑的。譬如预测耗时降低10ms对于优化用户体验意义重大,但对于研究人员来说基本没有太大意义。另外,PyTorch框架也在逐渐演进,以弥补其在生产应用上的劣势,在2018年年末,PyTorch 引入了即时编译器(JIT)和TorchScript。其中,JIT可以将PyTorch程序转换为一种名为TorchScript的中间表征(IR)。TorchScript 是PyTorch的图表征。一旦PyTorch模型处于其中间表征状态,我们就获得了图模式的所有好处。我们可以在不依赖 Python 的情况下,在 C++ 环境中部署PyTorch模型,或者对其进行优化,从而使PyTorch在深度学习各场景中有更大的应用空间。
本书聚焦PyTorch深度学习各场景的动手实现,不涉及模型层面的原理剖析。读者可以基于本书提供的知识快速实现CNN、RNN、生成对抗网络等神经网络。本书的翻译工作由马恩驰和陆健利用业余时间合作完成,马恩驰负责翻译第2、4、5、6章,陆健负责翻译第1、3、7、8章。由于译者水平有限,翻译中难免有疏漏之处,有问题请邮件反馈至maec1208@gmail.com。
感谢机械工业出版社华章分社的编辑在本书翻译过程中给予的协助,感谢家人和同事给予的支持。2020年是特殊的一年,向为疫情而奋战在一线的医疗工作者致敬。

马恩驰 陆健
2020年2月于北京

图书目录

译者序
前言
作者简介
审校者简介
第1章 深度学习回顾和PyTorch简介1
1.1 PyTorch的历史2
1.2 PyTorch是什么3
1.2.1 安装PyTorch4
1.2.2 PyTorch流行的原因5
1.3 使用计算图7
1.3.1 使用静态图8
1.3.2 使用动态图11
1.4 探索深度学习13
1.5 开始编写代码22
1.5.1 学习基本操作22
1.5.2 PyTorch的内部逻辑28
1.6 总结31
参考资料32
第2章 一个简单的神经网络33
2.1 问题概述33
2.2 数据集34
2.3 新手模型38
2.4 PyTorch方式49
2.4.1 高阶API50
2.4.2 functional模块55
2.4.3 损失函数57
2.4.4 优化器57
2.5 总结59
参考资料59
第3章 深度学习工作流60
3.1 构思和规划61
3.2 设计和实验62
3.2.1 数据集和DataLoader类62
3.2.2 实用程序包65
3.3 模型实现75
3.4 训练和验证79
3.5 总结86
参考资料 86
第4章 计算机视觉87
4.1 CNN简介87
4.2 将PyTorch应用于计算机视觉90
4.2.1 简单CNN90
4.2.2 语义分割99
4.3 总结112
参考资料112
第5章 序列数据处理114
5.1 循环神经网络简介114
5.2 问题概述116
5.3 实现方法116
5.3.1 简单RNN117
5.3.2 高级RNN130
5.3.3 递归神经网络137
5.4 总结141
参考资料142
第6章 生成网络143
6.1 方法定义144
6.2 自回归模型145
6.2.1 PixelCNN147
6.2.2 WaveNet153
6.3 GAN161
6.3.1 简单GAN161
6.3.2 CycleGAN168
6.4 总结173
参考资料173
第7章 强化学习175
7.1 问题定义177
7.2 回合制任务与连续任务178
7.3 累积折扣奖励179
7.4 马尔可夫决策过程180
7.5 解决方法182
7.5.1 策略和价值函数182
7.5.2 贝尔曼方程183
7.5.3 深度Q学习184
7.5.4 经验回放186
7.5.5 Gym186
7.6 总结194
参考资料194
第8章 将PyTorch应用到生产195
8.1 使用Flask提供服务196
8.2 ONNX202
8.3 使用TorchScript提高效率215
8.4 探索RedisAI218
8.5 总结222
参考资料223

教学资源推荐
作者: [美]黄铠(Kai Hwang)著
作者: [中国]张岳(Yue Zhang) 滕志扬(Zhiyang Teng
作者: (美)Tom M.Mitchell
作者: [以] 沙伊·沙莱夫-施瓦茨(Shai Shalev-Shwartz)[加] 沙伊·本-戴维(Shai Ben-David) 著
参考读物推荐
作者: 林宙辰 李欢 方聪 著
作者: 叶强 闫维新 黎斌 编著
作者: [日]石黑 浩(Hiroshi Ishiguro),[日]浅田 稔(Minoru Asada),[日]大和 信夫(Nobuo Yamato) 著