深度学习系列:PyTorch深度学习实战(美)伊莱·史蒂文斯,(意)卢卡·安蒂加,(德)托马斯·菲曼 著 牟大恩 译
举报
正版保证,放心选购
-
作者:
(美)伊莱·史蒂文斯,(意)卢卡·安蒂加,(德)托马斯·菲曼 著 牟大恩 译
-
出版社:
人民邮电出版社
-
ISBN:
9787115577672
-
出版时间:
2022-02
-
装帧:
平装
-
开本:
16开
-
作者:
(美)伊莱·史蒂文斯,(意)卢卡·安蒂加,(德)托马斯·菲曼 著 牟大恩 译
-
出版社:
人民邮电出版社
-
ISBN:
9787115577672
-
出版时间:
2022-02
售价
¥
82.60
6.9折
定价
¥119.90
品相
全新
上书时间2025-05-18
卖家超过10天未登录
-
-
商品描述:
-
作者简介
作者
伊莱·史蒂文斯(Eli Stevens)职业生涯的大部分时间都在美国硅谷的初创公司工作,从软件工程师(网络设备制造业)到首席技术官(开发肿瘤放疗软件)。在本书出版时,他正在汽车自动驾驶行业从事机器学习相关工作。
卢卡·安蒂加(Luca Antiga)于21 世纪初担任生物医学工程研究员。2010 年到2020 年间,他是一家人工智能工程公司的联合创始人和首席技术官。他参与了多个开源项目,包括PyTorch 的核心模块。最近,他作为联合创始人创建了一家总部位于美国的初创公司,专注于数据定义软件的基础设施。
托马斯·菲曼(Thomas Viehmann)是一名德国慕尼黑的机器学习和PyTorch 的专业培训师和顾问,也是PyTorch 核心开发人员。拥有数学博士学位的他不畏惧理论,擅长将理论应用于实际的计算挑战。
译者
牟大恩,武汉大学硕士研究生毕业,曾先后在网易杭州研究院、优酷土豆集团、海通证券总
部负责技术研发及系统架构设计工作,目前任职于东方证券资产管理有限公司。他有多年的Java
开发及系统设计经验,专注于互联网金融及大数据应用相关领域,热爱技术,喜欢钻研前沿技术,
是机器学习及深度学习的深度爱好者。近年来著有《Kafka 入门与实践》,译有《Kafka Streams
实战》,已提交技术发明申请两项。
目录
第1部分PyTorch核心
第1章深度学习和PyTorch库简介3
1.1深度学习革命4
1.2PyTorch深度学习5
1.3为什么用PyTorch6
1.4PyTorch如何支持深度学习概述8
1.5硬件和软件要求10
1.6练习题12
1.7本章小结13
第2章预训练网络14
2.1一个识别图像主体的预训练网络15
2.1.1获取一个预先训练好的网络用于图像识别16
2.1.2AlexNet17
2.1.3ResNet19
2.1.4准备运行19
2.1.5运行模型21
2.2一个足以以假乱真的预训练模型23
2.2.1GAN游戏24
2.2.2CycleGAN25
2.2.3一个把马变成斑马的网络26
2.3一个描述场景的预训练网络29
2.4TorchHub31
2.5总结32
2.6练习题32
2.7本章小结33
第3章从张量开始34
3.1实际数据转为浮点数34
3.2张量:多维数组36
3.2.1从Python列表到PyTorch张量36
3.2.2构造个张量37
3.2.3张量的本质37
3.3索引张量40
3.4命名张量40
3.5张量的元素类型43
3.5.1使用dtype指定数字类型43
3.5.2适合任何场合的dtype44
3.5.3管理张量的dtype属性44
3.6张量的API45
3.7张量的存储视图46
3.7.1索引存储区47
3.7.2修改存储值:就地操作48
3.8张量元数据:大小、偏移量和步长48
3.8.1另一个张量的存储视图49
3.8.2无复制转置51
3.8.3高维转置52
3.8.4连续张量53
3.9将张量存储到GPU55
3.10NumPy互操作性57
3.11广义张量也是张量57
3.12序列化张量58
3.13总结60
3.14练习题60
3.15本章小结60
第4章使用张量表征真实数据61
4.1处理图像62
4.1.1添加颜色通道62
4.1.2加载图像文件63
4.1.3改变布局63
4.1.4正规化数据64
4.2三维图像:体数据65
4.3表示表格数据66
4.3.1使用真实的数据集67
4.3.2加载葡萄酒数据张量68
4.3.3表示分数70
4.3.4独热编码70
4.3.5何时分类72
4.3.6寻找阈值73
4.4处理时间序列75
4.4.1增加时间维度76
4.4.2按时间段调整数据77
4.4.3准备训练79
4.5表示文本81
4.5.1将文本转化为数字81
4.5.2独热编码字符82
4.5.3独热编码整个词83
4.5.4文本嵌入85
4.5.5作为蓝图的文本嵌入87
4.6总结88
4.7练习题88
4.8本章小结88
第5章学习的机制90
5.1永恒的建模经验90
5.2学习就是参数估计92
5.2.1一个热点问题93
5.2.2收集一些数据93
5.2.3可视化数据94
5.2.4选择线性模型首试94
5.3减少损失是我们想要的95
5.4沿着梯度下降98
5.4.1减小损失99
5.4.2进行分析99
5.4.3迭代以适应模型101
5.4.4归一化输入104
5.4.5再次可视化数据106
5.5PyTorch自动求导:反向传播的一切107
5.5.1自动计算梯度107
5.5.2优化器111
5.5.3训练、验证和过拟合115
5.5.4自动求导更新及关闭120
5.6总结121
5.7练习题122
5.8本章小结122
第6章使用神经网络拟合数据123
6.1人工神经网络124
6.1.1组成一个多层网络125
6.1.2理解误差函数125
6.1.3我们需要的只是激活函数126
6.1.4更多激活函数128
6.1.5选择很好激活函数128
6.1.6学习对于神经网络意味着什么129
6.2PyTorchnn模块131
6.2.1使用__call__()而不是forward()132
6.2.2回到线性模型133
6.3最终完成一个神经网络137
6.3.1替换线性模型137
6.3.2检查参数138
6.3.3与线性模型对比141
6.4总结142
6.5练习题142
6.6本章小结142
第7章区分鸟和飞机:从图像学习143
7.1微小图像数据集143
7.1.1下载CIFAR-10144
7.1.2Dataset类145
7.1.3Dataset变换146
7.1.4数据归一化149
7.2区分鸟和飞机150
7.2.1构建数据集151
7.2.2一个全连接模型152
7.2.3分类器的输出153
7.2.4用概率表示输出154
7.2.5分类的损失157
7.2.6训练分类器159
7.2.7全连接网络的局限165
7.3总结167
7.4练习题167
7.5本章小结168
第8章使用卷积进行泛化169
8.1卷积介绍169
8.2卷积实战172
8.2.1填充边界173
8.2.2用卷积检测特征175
8.2.3使用深度和池化技术进一步研究177
8.2.4为我们的网络整合一切179
8.3子类化nn.Module181
8.3.1将我们的网络作为一个nn.Module182
8.3.2PyTorch如何跟踪参数和子模块183
8.3.3函数式API184
8.4训练我们的convnet185
8.4.1测量精度187
8.4.2保存并加载我们的模型188
8.4.3在GPU上训练188
8.5模型设计190
8.5.1增加内存容量:宽度191
8.5.2帮助我们的模型收敛和泛化:正则化192
8.5.3深入学习更复杂的结构:深度195
8.5.4本节设计的比较200
8.5.5已经过时了201
8.6总结201
8.7练习题201
8.8本章小结202
第2部分从现实世界的图像中学习:肺癌的早期检测
第9章使用PyTorch来检测癌症205
9.1用例简介205
9.2为一个大型项目做准备206
9.3到底什么是CT扫描207
9.4项目:肺癌的端到端检测仪210
9.4.1为什么我们不把数据扔给神经网络直到它起作用呢213
9.4.2什么是结节216
9.4.3我们的数据来源:LUNA大挑战赛217
9.4.4下载LUNA数据集218
9.5总结219
9.6本章小结219
第10章将数据源组合成统一的数据集220
10.1原始CT数据文件222
10.2解析LUNA的标注数据222
10.2.1训练集和验证集224
10.2.2统一标注和候选数据225
10.3加载单个CT扫描227
10.4使用病人坐标系定位结节230
10.4.1病人坐标系230
10.4.2CT扫描形状和体素大小232
10.4.3毫米和体素地址之间的转换233
10.4.4从CT扫描中取出一个结节234
10.5一个简单的数据集实现235
10.5.1使用getCtRawCandidate()函数缓存候选数组238
10.5.2在LunaDataset.__init__()中构造我们的数据集238
10.5.3分隔训练集和验证集239
10.5.4呈现数据240
10.6总结241
10.7练习题241
10.8本章小结242
第11章训练分类模型以检测可疑肿瘤243
11.1一个基本的模型和训练循环243
11.2应用程序的主入口点246
11.3预训练和初始化247
11.3.1初始化模型和优化器247
11.3.2数据加载器的维护和供给249
11.4我们的抢先发售神经网络设计251
11.4.1核心卷积251
11.4.2完整模型254
11.5训练和验证模型257
11.5.1computeBatchLoss()函数258
11.5.2类似的验证循环260
11.6输出性能指标261
11.7运行训练脚本265
11.7.1训练所需的数据266
11.7.2插曲:enumerateWithEstimate()函数266
11.8评估模型:得到99.7%的正确率是否意味着我们完成了任务268
11.9用TensorBoard绘制训练指标269
11.9.1运行TensorBoard269
11.9.2增加TensorBoard对指标记录函数的支持272
11.10为什么模型不学习检测结节274
11.11总结275
11.12练习题275
11.13本章小结275
第12章通过指标和数据增强来提升训练277
12.1不错改进计划278
12.2好狗与坏狗:假阳性与假阴性279
12.3用图表表示阳性与阴性280
12.3.1召回率是Roxie的强项282
12.3.2精度是Preston的强项283
12.3.3在logMetrics()中实现精度和召回率284
12.3.4我们的优选性能指标:F1分数285
12.3.5我们的模型在新指标下表现如何289
12.4理想的数据集是什么样的290
12.4.1使数据看起来更理想化292
12.4.2使用平衡的LunaDataset与之前的数据集运行情况对比296
12.4.3认识过拟合298
12.5重新审视过拟合的问题300
12.6通过数据增强防止过拟合300
12.6.1具体的数据增强技术301
12.6.2看看数据增强带来的改进306
12.7总结308
12.8练习题308
12.9本章小结309
第13章利用分割法寻找可疑结节310
13.1向我们的项目添加第2个模型310
13.2各种类型的分割312
13.3语义分割:逐像素分类313
13.4更新分割模型317
13.5更新数据集以进行分割319
13.5.1U-Net有很好具体的对输入大小的要求320
13.5.2U-Net对三维和二维数据的权衡320
13.5.3构建真实、有效的数据集321
13.5.4实现Luna2dSegmentationDataset327
13.5.5构建训练和验证数据331
13.5.6实现TrainingLuna2dSegmentationDataset332
13.5.7在GPU上增强数据333
13.6更新用于分割的训练脚本335
13.6.1初始化分割和增强模型336
13.6.2使用Adam优化器336
13.6.3骰子损失337
13.6.4将图像导入TensorBoard340
13.6.5更新指标日志343
13.6.6保存模型344
13.7结果345
13.8总结348
13.9练习题348
13.10本章小结349
第14章端到端的结节分析及下一步的方向350
14.1接近终点线350
14.2验证集的独立性352
14.3连接CT分割和候选结节分类353
14.3.1分割354
14.3.2将体素分组为候选结节355
14.3.3我们发现结节了吗?分类以减少假阳性357
14.4定量验证360
14.5预测恶性肿瘤361
14.5.1获取恶性肿瘤信息361
14.5.2曲线基线下的区域:按直径分类362
14.5.3重用预先存在的权重:微调365
14.5.4TensorBoard中的输出370
14.6在诊断时所见的内容374
14.7接下来呢?其他灵感和数据的来源376
14.7.1防止过拟合:更好的正则化377
14.7.2精细化训练数据379
14.7.3竞赛结果及研究论文380
14.8总结381
14.9练习题382
14.10本章小结383
第3部分部署
第15章部署到生产环境387
15.1PyTorch模型的服务388
15.1.1支持Flask服务的模型388
15.1.2我们想从部署中得到的东西390
15.1.3批处理请求391
15.2导出模型395
15.2.1PyTorch与ONNX的互操作性396
15.2.2PyTorch自己的导出:跟踪397
15.2.3具有跟踪模型的服务器398
15.3与PyTorchJIT编译器交互398
15.3.1超越经典Python/PyTorch的期望是什么399
15.3.2PyTorch作为接口和后端的双重特性400
15.3.3TorchScript400
15.3.4为可追溯的差异编写脚本404
15.4LibTorch:C++中的PyTorch405
15.4.1从C++中运行JITed模型405
15.4.2从C++API开始408
15.5部署到移动设备411
15.6新兴技术:PyTorch
模型的企业服务416
15.7总结416
15.8练习题416
15.9本章小结416
内容摘要
虽然很多深度学习工具都使用Python,但PyTorch 库是真正具备Python 风格的。对于任何了解NumPy 和scikit-learn 等工具的人来说,上手PyTorch 轻而易举。PyTorch 在不牺牲不错特性的情况下简化了深度学习,它很好适合构建快速模型,并且可以平稳地从个人应用扩展到企业级应用。由于像苹果、Facebook和摩根大通这样的公司都使用PyTorch,所以当你掌握了PyTorth,就会拥有更多的职业选择。 本书是教你使用 PyTorch 创建神经网络和深度学习系统的实用指南。它帮助读者快速从零开始构建一个真实示例:肿瘤图像分类器。在此过程中,它涵盖了整个深度学习管道的关键实践,包括 PyTorch张量 API、用 Python 加载数据、监控训练以及将结果进行可视化展示。 本书主要内容: (1)训练深层神经网络; (2)实现模块和损失函数; (3)使用 PyTorch Hub 预先训练的模型; (4)探索在 Jupyter Notebooks 中编写示例代码。 本书适用于对深度学习感兴趣的 Python 程序员。了解深度学习的基础知识对阅读本书有一定的帮助,但读者无须具有使用 PyTorch 或其他深度学习框架的经验。
主编推荐
1.PyTorch核心开发者教你使用 PyTorch 创建神经网络和深度学习系统的实用指南。
2.详细讲解整个深度学习管道的关键实践,包括 PyTorch张量API、用 Python 加载数据、监控训练以及对结果进行可视化。
3. PyTorch核心知识+真实、完整的案例项目,快速提升读者动手能力:
a.全面掌握PyTorch 相关的API 的使用方法以及系统掌握深度学习的理论和方法;
b.快速从零开始构建一个真实示例:肿瘤图像分类器;
c.轻松学会使用PyTorch 实现各种神经网络模型来解决具体的深度学习问题;
d.章尾附有“练习题”,巩固提升所学知识;更有配套的代码文件可下载并动手实现。
4. PyTorch 联合创作者Soumith Chintala作序推荐!
5. 书中所有代码都是基于Python 3.6及以上的版本编写的,提供源代码下载。
媒体评论
“我们终于有了一本关于PyTorch 的非常不错著作。它很好详细地介绍了基础知识和抽象概念。”
——摘自PyTorch 联合创作者Soumith Chintala 所作的序
“这本书通过逻辑构建的示例代码将深度学习划分为易于理解的多个模块。”
——Mathieu Zhang, NVIDIA
“实时、实用、全面,不要把这本书放置在书架上,而应该放在你的笔记本电脑旁边。”
——Philippe Van Bergen, P2 Consulting
“这本书提供了一个很好实用的深度学习概述……,它是很好的教学资源。”
——Orlando Alejo Méndez Morales, Experian
孔网啦啦啦啦啦纺织女工火锅店第三课
开播时间:09月02日 10:30
即将开播,去预约

直播中,去观看