在人工智能的浩瀚星空中,深度学习犹如一颗耀眼的明星,引领着计算机视觉技术的发展。《PyTorch深度学习与计算机视觉实践》带领读者领略深度学习在计算视觉领域的魅力,详解使用PyTorch 2.0进行计算机视觉应用实战的技巧。本书配套示例源码、PPT课件。
《PyTorch深度学习与计算机视觉实践》共分15章,内容包括深度学习与计算机视觉、PyTorch 2.0深度学习环境搭建、从0开始PyTorch 2.0、一学就会的深度学习基础算法、基于PyTorch卷积层的MNIST分类实战、PyTorch数据处理与模型可视化、残差神经网络实战、基于OpenCV与PyTorch的人脸识别实战、词映射与循环神经网络、注意力机制与注意力模型详解、基于注意力机制的图像识别实战、基于Diffusion Model的从随机到可控的图像生成实战、基于注意力的单目摄像头目标检测实战、基于注意力与Unet的全画幅适配图像全景分割实战、基于预训练模型的可控零样本图像迁移合成实战。
《PyTorch深度学习与计算机视觉实践》既适合深度学习初学者、PyTorch初学者、PyTorch深度学习计算机视觉应用开发人员阅读,也可作为高等院校或高职高专计算机技术、人工智能、智能科学与技术、数据科学与大数据技术等相关专业的教材。
《PyTorch深度学习与计算机视觉实践》详解深度学习与计算机视觉基础、PyTorch 框架开发知识,以及图像分类、目标检测、图像分割、图像生成等一系列计算机视觉领域核心问题的实战应用。
案例包括人脸识别、图像识别、图像生成、目标检测、图像分割、图像迁移等。
配套PPT课件与示例源码,可用于深度学习与计算机视觉入门,也可作为高校深度学习与计算机视觉课程的教材。
在人工智能的浩瀚星空中,深度学习犹如一颗耀眼的明星,引领着计算机视觉技术的发展。在这个充满变革与机遇的时代,希望本书能够带领读者领略深度学习应用于计算视觉领域的魅力,并掌握使用PyTorch进行计算视觉应用实战的技巧。
本书关注的是计算机视觉领域的重要分支计算视觉,它涉及图像分类、目标检测、图像分割、图像生成等一系列核心问题。通过本书的学习,读者将了解深度学习和计算视觉的基本概念,掌握使用PyTorch进行图像处理、特征提取、模型训练和推理实践的技能。同时,本书还将通过完整的项目实战,让读者将所学知识应用到实际场景中,培养解决实际问题的能力。
本书构思
本书以实战为核心,以实际项目为导向。在阐述理论的基础上,带领读者踏上深度学习与计算机图像处理的探索之旅。本书不仅涵盖了基础知识,更有最新的研究成果和模型架构。通过阅读本书,读者将紧跟学术前沿,提升自身水平。
相比其他同类书籍,本书更强调理论的融会贯通。书中的所有知识点都不是孤立的,而是相互关联,构建成一个完整的知识体系。读者可根据章节顺序,由浅入深地逐步掌握各个知识点,最终形成自己的深度学习框架。
本书以解决图像处理实战项目为出发点,结合PyTorch 2.0深度学习框架进行深入浅出的讲解和演示。以多角度、多方面的方式手把手地教会读者编写代码,同时结合实际案例深入剖析其中的设计模式和模型架构。
本书特点
本书致力于引领读者掌握深度学习与PyTorch框架在计算机视觉处理领域的应用,不仅关注理论,更注重实践,提供一站式的实战指南。本书的突出优势体现在以下几个方面:
?系统性与实践性:本书从基础知识开始,逐步引导读者深入到实际项目中,对于可能遇到的问题,给出相应的解决方案。每个章节都以实际案例为依托,详细阐述相关知识点,让读者在实践中掌握深度学习和图像处理的核心技能。
?PyTorch与图像处理的完美结合:本书不仅介绍了PyTorch框架的基础知识和使用方法,还结合图像处理的实际应用进行深入探讨,以便读者更好地理解深度学习在计算机视觉领域的应用,并能够迅速将所学知识应用于实际项目中。
?多领域应用案例:本书通过多种领域的案例,展示深度学习在图像处理方面的广泛应用。这些案例涵盖图像识别、场景分割、图像生成以及目标检测等多个领域,使读者可以更好地了解深度学习在图像处理领域的应用前景。
?作者实战经验丰富:本书作者是深度学习领域的专家,具有深厚的学术背景和丰富的实践经验。作者在撰写本书的过程中以实际项目中遇到的问题为导向,注重知识体系的完整性和实用性,使本书更具参考价值。
资源下载
本书配套示例源代码、PPT课件,需要用微信扫描下面的二维码获取。如果阅读中发现问题或疑问,请发送邮件至booksaga@163.com,邮件主题写PyTorch深度学习与计算机视觉实践。
适合的读者
本书既适合深度学习初学者、PyTorch初学者、PyTorch计算机视觉应用开发人员阅读,也可作为高等院校或高职高专计算机技术、人工智能、智能科学与技术、数据科学与大数据技术等相关专业的教材。
致 谢
笔者在写作本书的过程中得到了家人和朋友的大力支持,在此表示感谢。本书的顺利出版,离不开清华大学出版社的编辑们的辛勤工作,在此表示感谢。
笔 者
2024年5月
王晓华,高校计算机专业讲师,研究方向为云计算、大数据与人工智能。著有图书部分包括:
《ChatGLM3大模型本地化部署、应用开发与微调》《PyTorch语音识别实战》《从零开始大模型开发与微调:基于PyTorch与ChatGLM》《PyTorch 2.0深度学习从零开始学》《Spark 3.0大数据分析与挖掘:基于机器学习》《TensorFlow深度学习应用实践》《OpenCV TensorFlow深度学习与计算机视觉实战》《TensorFlow语音识别实战》《TensorFlow 2.0卷积神经网络实战》《深度学习的数学原理与实现》。
第1章 深度学习与计算机视觉 1
1.1 深度学习的历史与发展 1
1.1.1 深度学习的起源 2
1.1.2 深度学习的发展脉络 3
1.1.3 为什么是PyTorch 2.0 3
1.2 计算机视觉之路 4
1.2.1 计算机视觉的基本概念 4
1.2.2 计算机视觉深度学习的主要任务 5
1.2.3 计算机视觉中的深度学习方法 6
1.2.4 深度学习在计算机视觉中的应用 7
1.3 本章小结 8
第2章 PyTorch 2.0深度学习环境搭建 9
2.1 环境搭建1:安装Python 9
2.1.1 Miniconda的下载与安装 9
2.1.2 PyCharm的下载与安装 12
2.1.3 Python代码小练习:计算softmax函数 16
2.2 环境搭建2:安装PyTorch 2.0 17
2.2.1 NVIDIA 10/20/30/40系列显卡选择的GPU版本 17
2.2.2 PyTorch 2.0 GPU NVIDIA运行库的安装 17
2.2.3 Hello PyTorch 19
2.3 Unet图像降噪第一个深度学习项目实战 20
2.3.1 MNIST数据集的准备 20
2.3.2 MNIST数据集特征介绍 22
2.3.3 Hello PyTorch 2.0模型的准备和介绍 23
2.3.4 对目标的逼近模型的损失函数与优化函数 25
2.3.5 Lets do it!基于深度学习的模型训练 26
2.4 本章小结 28
第3章 从0开始PyTorch 2.0 30
3.1 实战MNIST手写体识别 30
3.1.1 数据图像的获取与标签的说明 30
3.1.2 实战基于PyTorch 2.0的手写体识别模型 32
3.2 PyTorch 2.0常用函数解析与使用指南 36
3.2.1 数据加载和预处理 36
3.2.2 张量的处理 37
3.2.3 模型的参数与初始化操作 40
3.3 本章小结 42
第4章 一学就会的深度学习基础算法 43
4.1 反向传播神经网络的发展历程 43
4.2 反向传播神经网络的两个基础算法详解 46
4.2.1 最小二乘法 46
4.2.2 随机梯度下降算法 49
4.2.3 最小二乘法的梯度下降算法及其Python实现 52
4.3 反馈神经网络反向传播算法介绍 58
4.3.1 深度学习基础 58
4.3.2 链式求导法则 59
4.3.3 反馈神经网络原理与公式推导 60
4.3.4 反馈神经网络原理的激活函数 65
4.3.5 反馈神经网络原理的Python实现 66
4.4 本章小结 70
第5章 基于PyTorch卷积层的MNIST分类实战 71
5.1 卷积运算的基本概念 71
5.1.1 基本卷积运算示例 72
5.1.2 PyTorch中卷积函数实现详解 73
5.1.3 池化运算 76
5.1.4 softmax激活函数 77
5.1.5 卷积神经网络原理 78
5.2 基于卷积的MNIST手写体分类 80
5.2.1 数据的准备 81
5.2.2 模型的设计 81
5.2.3 基于卷积的MNIST分类模型 82
5.3 PyTorch的深度可分离膨胀卷积详解 83
5.3.1 深度可分离卷积的定义 84
5.3.2 深度的定义以及不同计算层待训练参数的比较 86
5.3.3 膨胀卷积详解 86
5.3.4 PyTorch中基于深度可分离膨胀卷积的MNIST手写体识别 87
5.4 本章小结 89
第6章 PyTorch数据处理与模型可视化 90
6.1 用于自定义数据集的torch.utils.data工具箱的用法 91
6.1.1 使用torch.utils.data. Dataset封装自定义数据集 91
6.1.2 改变数据类型的Dataset类中的transform详解 93
6.1.3 批量输出数据的DataLoader类详解 97
6.2 基于tensorboardX的训练可视化展示 99
6.2.1 PyTorch 2.0模型可视化组件tensorboardX的安装 99
6.2.2 tensorboardX可视化组件的使用 100
6.2.3 tensorboardX对模型训练过程的展示 102
6.3 本章小结 105
第7章 残差神经网络实战 106
7.1 ResNet的原理与程序设计基础 107
7.1.1 ResNet诞生的背景 107
7.1.2 不要重复造轮子PyTorch 2.0中的模块 110
7.1.3 ResNet残差模块的实现 111
7.1.4 ResNet的实现 113
7.2 ResNet实战:CIFAR-10数据集分类 116
7.2.1 CIFAR-10数据集简介 116
7.2.2 基于ResNet的CIFAR-10数据集分类 119
7.3 本章小结 121
第8章 基于OpenCV与PyTorch的人脸识别实战 122
8.1 找到人脸人脸识别数据集的建立 123
8.1.1 LFW数据集简介 123
8.1.2 Dlib库简介 124
8.1.3 OpenCV简介 125
8.1.4 使用Dlib检测人脸位置 125
8.1.5 使用Dlib和OpenCV制作人脸检测数据集 129
8.1.6 基于人脸定位制作适配深度学习的人脸识别数据集地址路径 131
8.2 人脸是谁基于深度学习的人脸识别模型基本架构 135
8.2.1 人脸识别的基本模型SiameseModel 135
8.2.2 基于PyTorch 2.0的SiameseModel的实现 136
8.2.3 人脸识别的Contrastive Loss详解与实现 137
8.2.4 基于PyTorch 2.0的人脸识别模型 138
8.3 本章小结 141
第9章 词映射与循环神经网络 142
9.1 樱桃-红色 紫色=?有趣的词映射 142
9.1.1 什么是词映射 143
9.1.2 PyTorch中embedding的处理函数详解 144
9.2 循环神经网络与情感分类实战 145
9.2.1 基于循环神经网络的中文情感分类实战的准备工作 145
9.2.2 基于循环神经网络的中文情感分类实战 147
9.3 循环神经网络理论讲解 150
9.3.1 什么是GRU 150
9.3.2 单向不行,那就双向 152
9.4 本章小结 153
第10章 注意力机制与注意力模型详解 154
10.1 注意力机制与模型详解 154
10.1.1 注意力机制详解 155
10.1.2 自注意力机制 156
10.1.3 ticks和LayerNormalization 162
10.1.4 多头注意力 163
10.2 注意力机制的应用实践编码器 166
10.2.1 编码器总体架构 166
10.2.2 回到输入层初始词向量层和位置编码器层 167
10.2.3 前馈层的实现 170
10.2.4 编码器的实现 171
10.3 实战编码器自然语言转换模型 174
10.3.1 汉字拼音数据集处理 174
10.3.2 汉字拼音转换模型的确定 176
10.3.3 模型训练部分的编写 179
10.3.4 补充说明 181
10.4 本章小结 182
第11章 开局一幅图基于注意力机制的图像识别实战 183
11.1 基于注意力的图像识别模型Vision Transformer 183
11.1.1 Vision Transformer 整体结构 183
11.1.2 Patch Embedding 185
11.1.3 Transformer Encoder层 187
11.1.4 完整的Vision Transformer架构设计 190
11.2 基于Vision Transformer的mini_ImageNet实战 191
11.2.1 mini_ImageNet数据集的简介与下载 191
11.2.2 mini_ImageNet数据集的处理基于PyTorch 2.0专用数据处理类 193
11.2.3 Vision Transformer模型设计 195
11.2.4 Vision Transformer模型的训练 196
11.2.5 基于现有Vision Transformer包的模型初始化 198
11.3 提升Vision Transformer模型准确率的一些技巧 198
11.3.1 模型的可解释性注意力热图的可视化实现 198
11.3.2 PyTorch 2.0中图像增强方法详解 201
11.4 本章小结 206
第12章 内容全靠编基于Diffusion Model的从随机到可控的图像生成实战 207
12.1 Diffusion Model实战MNIST手写体生成 207
12.1.1 Diffusion Model的传播流程 208
12.1.2 直接运行的DDPM的模型训练实战 209
12.1.3 DDPM的基本模块说明 212
12.1.4 DDPM加噪与去噪详解 215
12.1.5 DDPM的损失函数 220
12.2 可控的Diffusion Model生成实战指定数字生成MNIST手写体 221
12.2.1 Diffusion Model可控生成的基础特征融合 221
12.2.2 Diffusion Model可控生成的代码实战 221
12.3 加速的Diffusion Model生成实战DDIM 223
12.3.1 直接运行的少步骤的DDIM手写体生成实战 224
12.3.2 DDIM的预测传播流程 226
12.4 本章小结 228
第13章 认清物与位基于注意力的单目摄像头目标检测实战 230
13.1 目标检测基本概念详解 231
13.1.1 基于注意力机制的目标检测模型DETR 231
13.1.2 目标检测基本概念(注意力机制出现之前) 232
13.1.3 目标检测基本概念(注意力机制出现之后) 233
13.2 基于注意力机制的目标检测模型DETR详解 237
13.2.1 基于预训练DETR模型实现的实用化目标检测网页 237
13.2.2 基于注意力的目标检测模型DETR 239
13.3 DETR模型的损失函数 243
13.3.1 一看就会的二分图匹配算法 243
13.3.2 基于二分图匹配算法的目标检测的最佳组合 245
13.3.3 DETR中的损失函数 250
13.3.4 解决batch中tensor维度不一致的打包问题 253
13.4 基于DETR的目标检测自定义数据集实战 254
13.4.1 VOC数据集简介与数据读取 254
13.4.2 基于PyTorch中的Dataset的数据输入类 257
13.4.3 基于DETR的自定义目标检测实战 259
13.5 本章小结 261
第14章 凝思辨真颜基于注意力与Unet的全画幅适配图像全景分割实战 262
14.1 图像分割的基本形式与数据集处理 262
14.1.1 图像分割的应用 263
14.1.2 基于预训练模型的图像分割预测示例 264
14.2 基于注意力与Unet的图像分割模型SwinUnet 267
14.2.1 基于全画幅注意力的 Swin Transformer详解 268
14.2.2 经典图像分割模型Unet详解 270
14.3 基于SwinUnet的图像分割实战 271
14.3.1 图像分割的label图像处理 271
14.3.2 图像分割的VOC数据集处理 274
14.3.3 图像分割损失函数DiceLoss详解 276
14.3.4 基于SwinUnet的图像分割实战 278
14.4 本章小结 279
第15章 谁还用GAN基于预训练模型的可控零样本图像迁移合成实战 281
15.1 基于预训练模型的可控零样本图像风格迁移实战 281
15.1.1 实战基于预训练模型的可控零样本图像风格迁移 282
15.1.2 详解可控零样本图像风格迁移模型 283
15.2 基于预训练模型的零样本图像风格迁移实战 284
15.2.1 Vision Transformer架构的DINO模型 285
15.2.2 风格迁移模型Splicing详解 287
15.2.3 逐行讲解风格迁移模型Splicing的损失函数 291
15.3 本章小结 296