新書推薦:
《
以爱为名的支配
》
售價:HK$
62.7
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:HK$
53.8
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:HK$
66.1
《
新时代硬道理 广东寻路高质量发展
》
售價:HK$
77.3
《
6S精益管理实战(精装版)
》
售價:HK$
100.6
《
异域回声——晚近海外汉学之文史互动研究
》
售價:HK$
109.8
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:HK$
99.7
《
无端欢喜
》
售價:HK$
76.2
|
編輯推薦: |
深度学习是机器学习中非常激动人心的领域,深度学习算法工程师、图像视觉工程师和自然语言处理工程师逐渐成为报酬较高的新兴职业,各行各业的公司都在寻求具备深度学习理论知识和实际编程技能的人才。初学者学习深度学习理论与PyTorch编程技术一般都会面临两大障碍,第一大障碍是深度学习理论基础,深度学习包含了很多需要掌握的基本概念;第二大障碍是编程实践。本书就是为了让初学者顺利入门而设计的,本书系统讲解了深度学习的原理以及PyTorch编程技术,内容较全面,可操作性强,做到理论与实践相结合,帮助初学者顺利入门,进而掌握好这项技术。
《PyTorch编程技术与深度学习》讲解详细且通俗易懂,以具体的示例辅助学习和实践,便于读者理解和自主应用。本书有三大特色。特色一:理论与实践结合。通常的PyTorch编程书籍往往只提供一些可运行代码和点到为止的讲解,学习者常常知其然而不知其所以然。本书不但提供示例代码,还详细讲解背后的原理和代码的细节,加深对代码的理解。特色二:内容新,反映PyTorch的发展方向。特色三:在线辅导。专门开设QQ学习群以提供学习全程辅导,自学无忧。
《PyTorch编程技术与深度学
|
內容簡介: |
《PyTorch编程技术与深度学习》讲述深度学习的基本原理,使用PyTorch展示涉及的深度学习算法。通过理论讲解和编程操作,使读者了解并掌握深度学习的原理和PyTorch编程技能,拉近理论与实践的距离。全书共分9章,主要内容包括PyTorch介绍、PyTorch基础编程、深度学习快速入门、神经网络训练与优化、卷积神经网络原理、卷积神经网络示例、词嵌入模型、循环神经网络原理、NLP示例。书中不但涵盖成熟的卷积神经网络和循环神经网络的原理和示例,还包含一些新的如Transformer和知识蒸馏的内容。全书源代码全部在Python 3.7.4 PyTorch 1.9.0版本上调试成功。 《PyTorch编程技术与深度学习》适合深度学习和PyTorch编程人员作为入门和提高的技术参考书使用,也适合用作计算机专业高年级本科生和研究生的教材或教学参考书。
|
關於作者: |
袁梅宇,工学博士,硕士导师,现在昆明理工大学计算机系任教。为本科生和研究生主讲软件工程、Java程序设计、Java EE技术、数据库原理、机器学习、人工智能等多门核心课程。第一作者专著有《Java EE企业级编程开发实例详解》《数据挖掘与机器学习——WEKA应用技术与实践》《数据挖掘与机器学习——WEKA应用技术与实践(第二版)》《求精要诀——Java EE编程开发案例精讲》《机器学习基础——原理算法与实践》。
|
目錄:
|
第1章 PyTorch介绍 1
1.1 深度学习与PyTorch简介 2
1.1.1 深度学习介绍 2
1.1.2 PyTorch介绍 3
1.2 PyTorch安装 6
1.2.1 Anaconda下载 6
1.2.2 Windows下安装PyTorch 7
1.2.3 Linux Ubuntu下安装PyTorch 8
1.2.4 Anaconda管理 9
1.3 常用数据集 12
1.3.1 MNIST数据集 12
1.3.2 Fashion-MNIST数据集 14
1.3.3 CIFAR-10数据集 17
1.3.4 Dogs vs. Cats数据集 19
1.3.5 AG_NEWS数据集 20
1.3.6 WikiText2数据集 22
1.3.7 QIQC数据集 23
1.3.8 Multi30k数据集 24
习题 25
第2章 PyTorch基础编程 27
2.1 张量数据操作 28
2.1.1 张量简介 28
2.1.2 张量操作 28
2.1.3 广播机制 45
2.1.4 在GPU上使用Tensor 48
2.2 自动求导 50
2.2.1 自动求导概念 50
2.2.2 自动求导示例 50
2.3 数据集API 53
2.3.1 自定义数据集类 53
2.3.2 DataLoader类 55
2.4 torchvision工具示例 57
2.4.1 编写简单的图像数据集 57
2.4.2 Transforms模块 59
2.4.3 Normalize用法 61
2.4.4 ImageFolder用法 62
2.5 torchtext工具示例 64
2.5.1 编写文本预处理程序 64
2.5.2 使用torchtext 67
习题 70
第3章 深度学习快速入门 71
3.1 线性回归 72
3.1.1 线性回归介绍 72
3.1.2 线性回归实现 76
3.2 使用nn模块构建线性回归模型 82
3.2.1 使用nn.Linear训练线性回归模型 82
3.2.2 使用nn.Sequential训练线性回归模型 85
3.2.3 使用nn.Module训练线性回归模型 87
3.3 逻辑回归 88
3.3.1 逻辑回归介绍 89
3.3.2 逻辑回归实现 91
3.4 Softmax回归 96
3.4.1 Softmax回归介绍 96
3.4.2 Softmax回归实现 98
3.5 神经网络 103
3.5.1 神经元 103
3.5.2 激活函数 104
3.5.3 神经网络原理 108
3.5.4 PyTorch神经网络编程 111
习题 116
第4章 神经网络训练与优化 119
4.1 神经网络迭代概念 120
4.1.1 训练误差与泛化误差 120
4.1.2 训练集、验证集和测试集
划分 121
4.1.3 偏差与方差 123
4.2 正则化方法 124
4.2.1 提前终止 125
4.2.2 正则化 126
4.2.3 Dropout 127
4.3 优化算法 129
4.3.1 小批量梯度下降 130
4.3.2 Momentum算法 131
4.3.3 RMSProp算法 134
4.3.4 Adam算法 137
4.4 PyTorch的初始化函数 139
4.4.1 普通初始化 139
4.4.2 Xavier初始化 140
4.4.3 He初始化 141
习题 142
第5章 卷积神经网络原理 145
5.1 CNN介绍 146
5.1.1 CNN与图像处理 146
5.1.2 卷积的基本原理 146
5.1.3 池化的基本原理 155
5.2 简单的CNN网络 158
5.2.1 定义网络模型 158
5.2.2 模型训练 160
5.2.3 模型评估 160
5.2.4 主函数 161
5.3 PyTorch实现LeNet-5网络 163
5.3.1 LeNet-5介绍 163
5.3.2 LeNet-5实现MNIST手写数字识别 164
5.3.3 LeNet-5实现CIFAR-10图像识别 168
习题 170
第6章 卷积神经网络示例 171
6.1 经典CNN网络 172
6.1.1 VGG 172
6.1.2 ResNet 173
6.1.3 Inception 175
6.1.4 Xception 178
6.1.5 ResNet代码研读 179
6.2 使用预训练的CNN 185
6.2.1 特征抽取 186
6.2.2 微调 194
6.3 知识蒸馏 197
6.3.1 知识蒸馏原理 197
6.3.2 知识蒸馏示例 199
6.4 CNN可视化 204
6.4.1 中间激活可视化 205
6.4.2 过滤器可视化 212
习题 214
第7章 词嵌入模型 215
7.1 词嵌入模型介绍 216
7.1.1 独热码 216
7.1.2 词嵌入 222
7.2 词嵌入学习 225
7.2.1 词嵌入学习的动机 226
7.2.2 Skip-Gram算法 227
7.2.3 CBOW算法 229
7.2.4 负采样 230
7.2.5 GloVe算法 234
7.3 Word2Vec算法实现 235
7.3.1 Skip-Gram实现 235
7.3.2 CBOW实现 239
7.3.3 负采样Skip-Gram实现 243
习题 248
第8章 循环神经网络原理 251
8.1 RNN介绍 252
8.1.1 有记忆的神经网络 252
8.1.2 RNN用途 255
8.2 基本RNN模型 259
8.2.1 基本RNN原理 259
8.2.2 基本RNN的训练问题 263
8.2.3 基本RNN编程 265
8.2.4 基本RNN示例 269
8.3 LSTM 275
8.3.1 LSTM原理 275
8.3.2 LSTM编程 279
8.4 GRU 280
8.4.1 GRU原理 280
8.4.2 GRU编程 282
8.5 注意力机制 283
8.5.1 Seq2Seq模型的缺陷 283
8.5.2 机器翻译中的注意力机制 284
8.6 Transformer模型 286
8.6.1 编码器 287
8.6.2 多头注意力层 288
8.6.3 前向层 289
8.6.4 位置编码 289
8.6.5 解码器 290
8.6.6 解码器层 291
8.6.7 Transformer的PyTorch
实现 291
习题 292
第9章 NLP示例 295
9.1 情感分析 296
9.1.1 AG NEWS示例 296
9.1.2 Quora竞赛示例 301
9.2 语言模型 310
9.3 文本序列数据生成 316
9.3.1 向莎士比亚学写诗 316
9.3.2 神经机器翻译 324
习题 333
参考文献 335
|
內容試閱:
|
深度学习是机器学习中最激动人心的领域,深度学习算法工程师、图像视觉工程师和自然语言处理工程师逐渐成为报酬较高的新兴职业,各行各业都在寻求具备深度学习理论知识和实际编程技能的人才。只有具备深度学习相关理论和实践技能才更有可能在上述新兴职业中获得成功,但是学习和掌握神经网络、卷积神经网络、循环神经网络等深度学习理论具有一定的难度,而掌握PyTorch等深度学习工具更显得困难,因此拥有一本容易上手的深度学习入门书籍肯定会对初学者有很大的帮助,本书就是专门为初学者精心编写的。
初学者探究深度学习理论与PyTorch编程技术一般都会面临两大障碍。第一大障碍是深度学习理论基础,深度学习包含了很多需要掌握的基本概念,如神经元、全连接、Dropout、权重初始化、优化算法、卷积神经网络、卷积层和池化层、残差网络、Inception网络、迁移学习、知识蒸馏、循环神经网络、LSTM、GRU、双向循环神经网络、词嵌入、Word2Vec、GloVe、注意力机制、Transformer等,学习和理解这些概念需要花费大量的时间和精力,学习周期漫长。第二大障碍是编程实践,PyTorch是一个非常庞大的开源平台,拥有一个包含各种工具、库和社区资源的良好生态系统,要在短时间内掌握这些编程技能较为困难,并且由于人工智能领域发展异常迅猛,新技术、新方法层出不穷,PyTorch的API也在不断进化发展,这使得PyTorch开发人员在应用中总会遇到新问题,需要与时俱进,不断学习。
本书就是为了让初学者顺利入门而设计的。首先,本书讲述深度学习的基本原理,让读者了解基本的深度学习算法之后,通过实践来解决经典问题,逐步过渡到解决实际问题。其次,本书精心设计了一些构建深度网络的案例,读者能亲身体会如何将深度学习理论应用到实际中,加深对深度学习算法的理解和编程能力的提高,逐步掌握深度学习的原理和编程技能,拉近理论与实践的距离。
本书共分9章。第1章介绍深度学习和PyTorch的基本概念、PyTorch的安装和常用数据集;第2章为PyTorch基础编程,主要内容包括张量数据操作、自动求导、数据集API、torchvision工具示例和torchtext工具示例;第3章为深度学习快速入门,主要内容包括线性回归、使用nn模块构建线性回归模型、逻辑回归、Softmax回归、神经网络的基本概念以及PyTorch实现;第4章为神经网络训练与优化,主要内容包括神经网络迭代概念、正则化方法、优化算法和PyTorch的初始化函数;第5章为卷积神经网络原理,主要内容包括CNN的基本概念、简单的CNN网络和PyTorch实现LeNet-5网络;第6章为卷积神经网络示例,主要内容包括经典CNN网络、使用预训练的CNN、知识蒸馏,以及CNN可视化;第7章为词嵌入模型,主要内容包括词嵌入模型介绍、词嵌入学习,以及Word2Vec算法实现;第8章为循环神经网络原理,主要内容包括RNN介绍、基本RNN模型、LSTM、GRU、注意力机制、Transformer模型原理及PyTorch实现;第9章为NLP示例,主要内容包括情感分析、语言模型,以及文本序列数据生成。
由于深度学习软件更新很快,新开发的代码在旧版本环境下不一定能够兼容运行,为便于读者参考,在此列出本书代码的开发调试环境,即Python 3.7.4、PyTorch 1.9.0、conda 4.10.3、numpy 1.19.2、torchvision 0.10.0、torchtext 0.10.0、gensim 4.0.1、spacy 2.3.7。此外,本书配套源代码读者可通过扫描右侧的二维码下载使用。
作者在写作中付出很多努力和劳动,但限于作者的学识、能力和精力,书中难免会存在一些疏漏或缺陷,敬请各位读者批评指正。感谢昆明理工大学提供的研究和写作环境。感谢清华大学出版社的编辑老师在出版方面提出的建设性意见和给予的无私帮助,没有他们的大力支持、帮助和鼓励,本书不一定能够面世。感谢读者群的一些未见面的群友,他们对作者以前的著作提出宝贵的建议并鼓励作者撰写更多更好的技术书籍,虽然我无法一一列举姓名,但他们的帮助我会一直铭记在心。感谢购买本书的朋友,欢迎批评指正,你们的批评和建议都会受到重视,并在将来再版中改进。
编 者
|
|