深入浅出PyTorch

深入浅出PyTorch

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

类似推荐

编辑推荐

适读人群 :深度学习框架PyTorch入门者、任何对深度学习感兴趣的人。

英伟达(NVIDIA)公司资深深度学习架构工程师力作! 介绍PyTorch新版本的常用模块及其底层实现逻辑。 涉及PyTorch基础操作组合构造复杂的深度学习模型及其这些模型在计算机视觉、自然语言处理、推荐系统、语音识别、语音合成和强化学习中的应用。 介绍近几年学术界和工业界常用的诸多热门模型, 如SSD、FCN、GAN、LSTM和BERT等的PyTorch实现。

内容简介

本书从机器学习和深度学习的基础概念入手,由浅到深地详细介绍了PyTorch深度学习框架的知识,主要包含深度学习的基础知识,如神经网络的优化算法、神经网络的模块等;同时也包含了深度学习的进阶知识,如使用 PyTorch 构建复杂的深度学习模型,以及前沿的深度学习模型的介绍等。另外,为了加深读者对 PyTorch 深度学习框架的理解和掌握,本书还介绍了 PyTorch 的源代码结构,包括该框架的 Python语言前端和 C语言后端的源代码结构。 作为一本面向初中级读者的技术类图书,本书既可以作为深度学习框架 PyTorch 入门的参考书籍,也可以作为 PyTorch 深度学习框架的结构和源代码的阅读指南使用。

作者简介

张校捷,英伟达(NVIDIA)资深深度学习架构工程师,负责基于CUDA的深度学习框架的优化。目前主要使用的技术栈是作为深度学习框架后端的C/C/CUDA,以及深度学习框架前端的Python,对主流的深度学习框架如PyTorch和TensorFlow比较熟悉,并精通其在计算机视觉(CV)和自然语言处理(NLP)方面的具体应用。作者多次作为专题演讲嘉宾,受邀参加CSDN主办的技术大会。

章节目录

第1章深度学习概念简介 1

1.1深度学习的历史 1

1.1.1深度学习的发展过程 1

1.1.2深度学习在计算机视觉领域的发展 3

1.1.3深度学习在自然语言处理和其他领域的发展 6

1.2机器学习基本概念 7

1.2.1机器学习的主要任务 8

1.2.2机器模型的类型 9

1.2.3损失函数以及模型的拟合 11

1.3深度学习基本概念 14

1.3.1向量、矩阵和张量及其运算 15

1.3.2张量的存储 19

1.3.3神经元的概念 19

1.4输入数据的表示方式 20

1.4.1图像数据的表示方式 20

1.4.2文本数据的表示方式 22

1.4.3音频数据的表示方式 23

1.5线性变换和激活函数 26

1.5.1全连接线性变换 26

1.5.2卷积线性变换 28

1.5.3激活函数 29

1.6链式求导法则和反向传播 32

1.6.1基于链式求导的梯度计算 32

1.6.2激活函数的导数 34

1.6.3数值梯度 36

1.7损失函数和优化器 37

1.7.1常用的损失函数 37

1.7.2基于梯度的优化器 38

1.7.3学习率衰减和权重衰减 42

1.8本章总结 43

第2章 PyTorch深度学习框架简介 44

2.1深度学习框架简介 44

2.1.1深度学习框架中的张量 44

2.1.2深度学习框架中的计算图 45

2.1.3深度学习框架中的自动求导和反向传播 46

2.2PyTorch框架历史和特性更迭 47

2.3PyTorch的安装过程 49

2.4PyTorch包的结构 52

2.4.1PyTorch的主要模块 52

2.4.2PyTorch的辅助工具模块 57

2.5PyTorch中张量的创建和维度的操作 59

2.5.1张量的数据类型 59

2.5.2张量的创建方式 61

2.5.3张量的存储设备 65

2.5.4和张量维度相关的方法 66

2.5.5张量的索引和切片 69

2.6PyTorch中张量的运算 70

2.6.1涉及单个张量的函数运算 70

2.6.2涉及多个张量的函数运算 72

2.6.3张量的极值和排序 73

2.6.4矩阵的乘法和张量的缩并 75

2.6.5张量的拼接和分割 77

2.6.6张量维度的扩增和压缩 79

2.6.7张量的广播 80

2.7PyTorch中的模块简介 82

2.7.1PyTorch中的模块类 82

2.7.2基于模块类的简单线性回归类 82

2.7.3线性回归类的实例化和方法调用 84

2.8PyTorch的计算图和自动求导机制 87

2.8.1自动求导机制简介 87

2.8.2自动求导机制实例 88

2.8.3梯度函数的使用 89

2.8.4计算图生成的控制 89

2.9PyTorch的损失函数和优化器 90

2.9.1损失函数 90

2.9.2优化器 92

2.10PyTorch中数据的输入和预处理 96

2.10.1数据载入类 96

2.10.2映射类型的数据集 97

2.10.3torchvision工具包的使用 97

2.10.4可迭代类型的数据集 100

2.11PyTorch模型的保存和加载 101

2.11.1模块和张量的序列化及反序列化 101

2.11.2模块状态字典的保存和载入 104

2.12PyTorch数据的可视化 105

2.12.1TensorBoard的安装和使用 105

2.12.2TensorBoard常用的可视化数据类型 108

2.13PyTorch模型的并行化 110

2.13.1PyTorch的数据并行化 111

2.13.1PyTorch的分布式数据并行化 112

2.14本章总结 116

第3章 PyTorch计算机视觉模块 119

3.1计算机视觉基本概念 119

3.1.1计算机视觉任务简介 119

3.1.2基础图像变换操作 120

3.1.3图像特征提取 123

3.1.4滤波器的概念 125

3.2线性层 126

3.3卷积层 128

3.4归一化层 137

3.5池化层 144

3.6丢弃层 149

3.7模块的组合 151

3.8特征提取 153

3.9模型初始化 157

3.10常见模型结构 160

3.10.1InceptionNet的结构 161

3.10.2ResNet的结构 164

3.11本章总结 167

第4章PyTorch机器视觉案例 169

4.1常见计算机视觉任务和数据集 169

4.1.1图像分类任务简介 169

4.1.2目标检测任务简介 170

4.1.3图像分割任务简介 171

4.1.4图像生成任务简介 172

4.1.5常用深度学习公开数据集 173

4.2手写数字识别:LeNet 176

4.2.1深度学习工程的结构 176

4.2.2MNIST数据集的准备 177

4.2.3LeNet网络的搭建 179

4.2.4LeNet网络的训练和测试 182

4.2.5超参数的修改和argparse库的使用 185

4.3图像分类:ResNet和InceptionNet 187

4.3.1ImageNet数据集的使用 187

4.3.2ResNet网络的搭建 189

4.3.3InceptionNet网络的搭建 194

4.4目标检测:SSD 204

4.4.1SSD的骨架网络结构 204

4.4.2SSD的特征提取网络结构 205

4.4.3锚点框和选框预测 210

4.4.4输入数据的预处理 214

4.4.5损失函数的计算 216

4.4.6模型的预测和非极大抑制算法 218

4.5图像分割:FCN和U-Net 219

4.5.1FCN网络结构 220

4.5.2U-Net网络结构 225

4.6图像风格迁移 229

4.6.1图像风格迁移算法介绍 229

4.6.2输入图像的特征提取 231

4.6.3输入图像的优化 234

4.7生成模型:VAE和GAN 236

4.7.1变分自编码器介绍 237

4.7.2变分自编码器的实现 239

4.7.3生成对抗网络介绍 242

4.7.4生成对抗网络的实现 244

4.8本章总结 249

第5章 PyTorch自然语言处理模块 251

5.1自然语言处理基本概念 251

5.1.1机器翻译相关的自然语言处理研究 251

5.1.2其他领域的自然语言处理研究 253

5.1.3自然语言处理中特征提取的预处理 254

5.1.4自然语言处理中词频特征的计算方法 256

5.1.5自然语言处理中TF-IDF特征的计算方法 258

5.2词嵌入层 261

5.3循环神经网络层:GRU和LSTM 267

5.3.1简单循环神经网络 267

5.3.2长短时记忆网络(LSTM) 269

5.3.3门控循环单元(GRU) 272

5.4注意力机制 280

5.5自注意力机制 284

5.5.1循环神经网络的问题 284

5.5.2自注意力机制的基础结构 285

5.5.3使用自注意力机制来构建Seq2Seq模型 288

5.5.4PyTorch中自注意力机制的模块 290

5.5.5Pytorch中的Transformer模块 292

5.6本章总结 293

第6章 PyTorch自然语言处理案例 295

6.1word2vec算法训练词向量 295

6.1.1单词表的创建 295

6.1.2word2vec算法的实现 299

6.1.3word2vec算法的特性 301

6.2基于循环神经网络的情感分析 302

6.3基于循环神经网络的语言模型 305

6.3.1语言模型简介 305

6.3.2语言模型的代码 308

6.4Seq2Seq模型及其应用 311

6.4.1Seq2Seq模型的结构 311

6.4.2Seq2Seq模型编码器的代码 312

6.4.3Seq2Seq模型注意力机制的代码 315

6.4.4Seq2Seq模型解码器的代码 317

6.5BERT模型及其应用 321

6.5.1BERT模型的结构 321

6.5.2BERT模型的训练方法 325

6.5.3BERT模型的微调 327

6.6本章总结 329

第7章其他重要模型 330

7.1基于宽深模型的推荐系统 330

7.1.1推荐系统介绍 330

7.1.2宽深模型介绍 331

7.2DeepSpeech模型和CTC损失函数 335

7.2.1语音识别模型介绍 335

7.2.2CTC损失函数 337

7.3使用Tacotron和WaveNet进行语音合成 342

7.3.1Tacotron模型中基于Seq2Seq的梅尔过滤器特征合成 343

7.3.2Tacotron模型的代码 344

7.3.3WaveNet模型介绍 352

7.3.4因果卷积模块介绍 355

7.3.5因果卷积模块的代码 357

7.3.6WaveNet模型的代码 358

7.4基于DQN的强化学习算法 360

7.4.1强化学习的基础概念 361

7.4.2强化学习的环境 362

7.4.3DQN模型的原理 363

7.4.4DQN模型及其训练过程 365

7.5使用半精度浮点数训练模型 369

7.5.1半精度浮点数的介绍 370

7.5.2半精度模型的训练 371

7.5.3apex扩展包的使用 372

7.6本章总结 373

第8章 PyTorch高级应用 375

8.1PyTorch自定义激活函数和梯度 375

8.2在PyTorch中编写扩展 377

8.3正向传播和反向传播的钩子 385

8.4PyTorch的静态计算图 388

8.5静态计算图模型的保存和使用 393

8.6本章总结 396

第9章 PyTorch源代码解析 397

9.1ATen张量计算库简介 397

9.2C的Python接口 400

9.3csrc模块简介 404

9.4autograd和自动求导机制 407

9.5C10张量计算库简介 408

9.6本章总结 409

参考文献 410

深入浅出PyTorch是2020年由电子工业出版社出版,作者张校捷。

得书感谢您对《深入浅出PyTorch》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
深入浅出 ASP.NET Core 电子书
本书使用ASP.NETCore从零开始搭建一个实际的项目。从基本的控制台应用程序开始,介绍ASP.NETCore基本的启动流程,涵盖ASP.NETCore框架中各个技术的实际应用。同时,本书也会介绍一些ASP.NETCore的高级概念。
深入浅出Spring Boot 2.x 电子书
本书章节编排合理,深入浅出地阐述了Spring Boot 2.x的原理与应用,以及当今较为流行的微服务系统经常用到的技术及原理,内容通俗易懂。
深入浅出Spring Boot 3.x 电子书
全方位讲解Spring Boot 3.x技术。
深入浅出计算机网络 电子书
本书讲解了计算机网络通信的详细过程和计算机网络通信中的相关协议。
深入浅出WindowsAPI程序设计:核心编程篇 电子书
本书基于win 10和VS 2019编写,系统地介绍了Windows程序设计的核心编程思想与实践。