深度学习框架PyTorch:入门与实践
陈云 著
定价 65.00
出版社: 电子工业出版社
ISBN:9787121330773
版次:1
商品编码:12261129
品牌:Broadview
出版时间:2018-01-01
丛书名 :博文视点AI系列
作 译 者:廖星宇
出版时间:2017-09 千 字 数:299
版 次:01-01 页 数:232
开 本:16开
装 帧:
I S B N :9787121326202
换 版:
所属分类:科技 >> 计算机 >> 计算机科学
纸质书定价:¥79.0
深度学习如今已经成为了科技领域&炙手可热的技术,在本书中,我们将帮助你入门深度学习的领域。本书将从人工智能的介绍入手,了解机器学习和深度学习的基础理论,并学习如何用PyTorch框架对模型进行搭建。通过阅读本书,你将会学习到机器学习中的线性回归和logistic回归,深度学习的优化方法,多层全连接神经网络,卷积神经网络,循环神经网络以及生成对抗网络,同时从零开始对PyTorch进行学习,了解PyTorch基础及如何用其进行模型的搭建,&后通过实战了解&前沿的研究成果和PyTorch在实际项目中的应用。第1 章深度学习介绍1
1.1 人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 数据挖掘、机器学习与深度学习. . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 数据挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 机器学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 深度学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 学习资源与建议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第2 章深度学习框架11
2.1 深度学习框架介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 PyTorch 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 什么是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 为何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 配置PyTorch 深度学习环境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 操作系统的选择. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Python 开发环境的安装. . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 PyTorch 的安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第3 章多层全连接神经网络24
3.1 热身:PyTorch 基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Tensor(张量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Variable(变量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 Dataset(数据集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4 nn.Module(模组) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 torch.optim(优化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 模型的保存和加载. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 线性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 一维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 多维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.4 一维线性回归的代码实现. . . . . . . . . . . . . . . . . . . . . . 35
3.2.5 多项式回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 分类问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Logistic 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.3 Logistic 分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.4 二分类的Logistic 回归. . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.5 模型的参数估计. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.6 Logistic 回归的代码实现. . . . . . . . . . . . . . . . . . . . . . . 45
3.4 简单的多层全连接前向网络. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1 模拟神经元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.2 单层神经网络的分类器. . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.3 激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4 神经网络的结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.5 模型的表示能力与容量. . . . . . . . . . . . . . . . . . . . . . . . 55
3.5 深度学习的基石:反向传播算法. . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 链式法则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2 反向传播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 Sigmoid 函数举例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6 各种优化算法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1 梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.2 梯度下降法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 处理数据和训练模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.1 数据预处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.2 权重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.3 防止过拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8 多层全连接神经网络实现MNIST 手写数字分类. . . . . . . . . . . . . . 69
3.8.1 简单的三层全连接神经网络. . . . . . . . . . . . . . . . . . . . . 70
3.8.2 添加激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.3 添加批标准化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.4 训练网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
第4 章卷积神经网络76
4.1 主要任务及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 卷积神经网络的原理和结构. . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.3 全连接层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.4 卷积神经网络的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
4.3 PyTorch 卷积模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3 提取层结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.4 如何提取参数及自定义初始化. . . . . . . . . . . . . . . . . . . . 91
4.4 卷积神经网络案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 再实现MNIST 手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6 图像增强的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7 实现cifar10 分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第5 章循环神经网络111
5.1 循环神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2 循环神经网络的基本结构. . . . . . . . . . . . . . . . . . . . . . 112
5.1.3 存在的问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 循环神经网络的变式:LSTM 与GRU . . . . . . . . . . . . . . . . . . . . 116
5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 收敛性问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 循环神经网络的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.1 PyTorch 的循环网络模块. . . . . . . . . . . . . . . . . . . . . . . 122
5.3.2 实例介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4 自然语言处理的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.1 词嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2 词嵌入的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.3 N Gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.4 单词预测的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 134
5.4.5 词性判断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4.6 词性判断的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 137
5.5 循环神经网络的更多应用. . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.1 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.2 Many to Many(shorter) . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.3 Seq2seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.4 CNN+RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
第6 章生成对抗网络144
6.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1.1 自动编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.2 变分自动编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 生成对抗网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1 何为生成对抗网络. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2 生成对抗网络的数学原理. . . . . . . . . . . . . . . . . . . . . . 160
6.3 Improving GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.1 Wasserstein GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.2 Improving WGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.4 应用介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.1 Conditional GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.2 Cycle GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
第7 章深度学习实战173
7.1 实例一——猫狗大战:运用预训练卷积神经网络进行特征提取与预测. 173
7.1.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2 实例二——Deep Dream:探索卷积神经网络眼中的世界. . . . . . . . . 183
7.2.1 原理介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.2 预备知识:backward . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.2.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.3 实例三——Neural-Style:使用PyTorch 进行风格迁移. . . . . . . . . . . 196
7.3.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.3.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.3.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.3.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4 实例四——Seq2seq:通过RNN 实现简单的Neural Machine Translation . 205
7.4.1 背景介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.3 代码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.4.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . .
我最近在工作中遇到了一个需要用 PyTorch 来处理一些图像数据的问题,之前我对 PyTorch 了解不多,就找了这本书来学习。这本书的重点非常突出,就是“实践”。它提供的代码示例都非常实用,而且都围绕着具体的应用场景展开,比如图像分类、目标检测、图像分割等等。书中的讲解也很到位,它会一步步地告诉你如何加载数据、预处理数据、构建模型、训练模型、评估模型,以及如何进行模型优化。最让我印象深刻的是,它在讲解一些复杂的模型时,比如 Faster R-CNN 或者 Mask R-CNN,并没有直接给出复杂的代码,而是先从它们的原理出发,然后逐步拆解,让你理解其中的逻辑,最后再给出相应的代码实现。这样的讲解方式,让我能够深入理解模型的内在机制,而不是简单地复制代码。这本书还提供了一些关于数据增强和模型正则化的技巧,这些都是提升模型性能的关键。总而言之,这本书的实践性非常强,非常适合那些希望通过实际项目来学习 PyTorch 的人。
评分这本书我最近刚拿到手,翻了翻前几章,感觉 PyTorch 的入门真的比想象中要容易上手一些。作者在介绍基本概念的时候,比如张量(Tensor)的操作、自动求导(Autograd)的原理,都写得相当清晰,有很多代码示例,这一点我非常喜欢。不像有些书,光讲理论,看得人云里雾里。这里面给的例子都挺贴近实际应用的,不是那种脱离实际的“hello world”。比如,它一开始就让你搭建一个简单的神经网络,处理一些基础的数据集,虽然简单,但整个流程都走通了,非常有成就感。而且,它还介绍了 PyTorch 的一些核心模块,像 `nn.Module`、`optim`、`DataLoader`,这些都是构建模型必不可少的组件。我特别关注了它对 GPU 加速的讲解,这对于深度学习来说至关重要,书中给出的配置和使用方法都很详细,让我这个初学者也能顺利地将模型放到 GPU 上跑,大大提升了训练速度。整体来说,这本书给我最大的感受就是“上手快,看得懂”,对于想要快速入门 PyTorch 的人来说,应该是个不错的选择。
评分这本书的优点在于它提供了一个非常全面的 PyTorch 学习路径。从最基础的张量操作,到复杂的深度学习模型构建,再到模型的训练和部署,基本上涵盖了 PyTorch 开发的整个生命周期。我尤其赞赏它在介绍 PyTorch 的一些高级特性时,比如分布式训练、模型量化等,都给出了清晰的解释和相应的代码示例。这对于想要将深度学习模型应用到大规模场景中的开发者来说,非常有帮助。书中还穿插了一些关于深度学习理论的讲解,比如反向传播算法的数学原理,梯度下降的不同优化器,这些内容虽然不是 PyTorch 的核心,但对于理解模型的训练过程至关重要。它并没有把这些理论讲得过于枯燥,而是通过结合 PyTorch 的接口,让你能更直观地看到理论是如何在实践中落地的。此外,书中的排版也很舒服,代码清晰,图文并茂,阅读起来不会感到疲劳。总的来说,这本书是一本非常扎实的 PyTorch 教材,适合那些希望深入理解 PyTorch 并将其应用于实际项目中的读者。
评分我之前对深度学习一直有点摸不着头脑,感觉概念太多,公式也看得头疼。偶然间看到这本书,抱着试试看的心态买回来的。这本书的讲解方式真的让我耳目一新。它没有上来就堆砌一堆复杂的数学公式,而是通过非常直观的图示和生动的比喻来解释深度学习中的核心思想,比如卷积神经网络(CNN)是如何提取图像特征的,循环神经网络(RNN)是如何处理序列数据的,这些原本听起来很抽象的概念,通过书中的讲解,变得清晰易懂。我尤其欣赏它在介绍模型结构的时候,不仅给出了代码实现,还附带了对模型内部工作原理的细致剖析,让你知道为什么这样设计模型能起作用。书中的案例也涵盖了图像识别、自然语言处理等多个热门领域,并且提供了完整的实现代码,这对我这种喜欢动手实践的人来说,简直是福音。我跟着书中的例子,成功地复现了一些经典的深度学习模型,这种成就感是无与伦比的。它也强调了模型的调优和评估,这部分内容对于提高模型性能非常有帮助,让我明白了光会搭建模型是不够的,还需要知道如何让它做得更好。
评分说实话,我买这本书的初衷是因为看到它标题里有“深度学习入门”和“PyTorch实践”这些字眼,想着能够系统地学习一下。书的内容确实比较丰富,它不仅仅局限于 PyTorch 的基本用法,还深入探讨了一些更高级的主题。比如,它详细介绍了如何使用 PyTorch 来实现一些经典的深度学习模型,像是 AlexNet、VGG、ResNet 等等,并且还对比了这些模型在实际应用中的优劣。此外,它还涉及了一些模型部署的内容,比如如何将训练好的模型导出为 ONNX 格式,以及在不同平台上的运行方式,这对于想要将模型应用到实际产品中的开发者来说,非常有价值。书中还提到了迁移学习和微调(fine-tuning)的概念,并给出了相应的实践方法,这对于在小数据集上训练模型非常有用。我个人觉得,这本书的深度和广度都做得不错,既有入门级的讲解,也有进阶级的指导,能够满足不同层次读者的需求。它不是那种“速成”的书,而是需要花时间去理解和消化,但一旦掌握了,收获会非常大。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有