猜你喜欢
深度学习之PyTorch实战计算机视觉

深度学习之PyTorch实战计算机视觉

书籍作者:唐进民 ISBN:9787121341441
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2627
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

计算机视觉、自然语言处理和语音识别是目前深度学习领域很热门的三大应用方向,《深度学习之PyTorch实战计算机视觉》旨在帮助零基础或基础较为薄弱的读者入门深度学习,达到能够独立使用深度学习知识处理计算机视觉问题的水平。通过阅读本书,读者将学到人工智能的基础概念及Python 编程技能,掌握PyTorch 的使用方法,学到深度学习相关的理论知识,比如卷积神经网络、循环神经网络、自动编码器,等等。在掌握深度学习理论和编程技能之后,读者还会学到如何基于PyTorch 深度学习框架实战计算机视觉。《深度学习之PyTorch实战计算机视觉》中的大量实例可让读者在循序渐进地学习的同时,不断地获得成就感。

《深度学习之PyTorch实战计算机视觉》面向对深度学习技术感兴趣、但是相关基础知识较为薄弱或者零基础的读者。

作者简介

唐进民,深入理解深度学习与计算机视觉知识体系,有扎实的Python、PyTorch和数学功底,长期活跃于GitHub、知乎等平台,并分享与深度学习相关的文章,具有一定的阅读量和人气。此前在某AI在线教育平台兼职机器学习入门Mentor,辅导新学员入门机器学习和深度学习。

编辑推荐
适读人群 :本书面向对深度学习技术感兴趣,但是相关基础知识较为薄弱或者零基础的读者。

作者的文笔很好,对深度学习、Python、PyTorch、神经网络、迁移学习及相关数学知识讲解透彻,使书中的内容很好理解。

全书的架构也很好,学习下来,对深度学习的整个脉络都掌握得很清晰,可以说一本书通俗易懂地讲到了PyTorch实战计算机视觉所涉及的方方面面。

这是一本零基础入门书,希望能帮助您更好地入门并进阶深度学习。

前言

“人工智能”(Artificial Intelligence,简称AI)一词在很久以前就有了,被大众津津乐道却是近几年的事情,这和机器学习(Machine Learning)、深度学习(Deep Learning)等技术的崛起有着千丝万缕的联系,而这一切又得益于大数据的发展和计算机处理性能的不断提升。

本书将带领读者了解人工智能的相关技术和发展近况,通过一些实例来掌握必备的技能,并能够独立使用相关技术完成对计算机视觉问题的分析和处理。本书各个章节的知识要点如下。

第1章主要介绍人工智能、神经网络和计算机视觉的发展历史,让读者对这一领域有一个全面的认识。

第2章主要介绍在理解和掌握后面章节的内容时需要用到的数学知识,以及在实战操作的过程中进行环境搭建及安装相关软件的方法。本书中数学相关的大部分知识都集中在本章中,其主要目的是让读者先对这个领域的知识产生兴趣,这样才能更好地深入学习和研究。在本章中不会插入大量的数学公式,这样做会让初学者望而却步,在不断消化公式的过程中丧失学习兴趣和动力。通过不断实战来学习,可以累积成就感,这种自顶向下的方式不失为一种更好的学习方法。

第3章主要介绍在学习神经网络的过程中会经常遇到的一些概念和定义。比如后向传播(Back Propagation)、激活函数(Activation Function)、监督学习(Supervised Learning)、无监督学习(Unsupervised Learning),等等,这也是为之后学习深度神经网络做准备。在搭建一个完整的深度神经网络模型时,就需要不断地用到本章的内容了。

第4章主要介绍深度神经网络中的卷积神经网络(Convolutional Neural Network,简称CNN)。首先介绍卷积层、全连接层、池化层等相关内容,之后又列举了目前主流的一些卷积神经网络架构,并对比它们之间的相同点和不同点,以便于掌握不同的卷积神经网络的结构和技术细节。

第5章主要介绍Python编程语言的相关知识,目的是让读者掌握Python语言的语法定义和使用方式,并使用Python语言进行功能代码的编写;还会介绍在处理计算机视觉问题时需要用到的两个重要的Python包:NumPy和Matplotlib。本章内容丰富,而且Python语言自身就很简单且易上手,读者很快就能掌握Python这门编程语言。

第6章主要介绍如何使用PyTorch深度学习框架。PyTorch非常简单易用,能够根据我们的需求快速搭建出我们想要的深度神经网络模型,这在很大程度上归功于PyTorch基于动态图计算的特性,它与基于静态图计算的深度学习框架相比,有更多的优势,比如PyTorch不仅速度快,还有许多功能强大的包可供调用。本章先介绍PyTorch中常用的包和类的使用方法;然后介绍如何使用PyTorch中的一些自动化方法来提升代码的执行效率和简洁度;最后会通过一个综合实例,使用本章的内容解决一个实际的计算机视觉问题。

第7章一开始就是一个关于计算机视觉问题的实战,介绍了一种非常实用的深度神经网络复用方法,即迁移学习(Transfer Learning)。在掌握迁移学习的原理之后,会基于PyTorch对迁移学习进行实战,并解决比之前更复杂的计算机视觉问题。对实战代码的解析会贯穿本章,让读者更深刻地理解代码。

第8章讲解如何基于PyTorch实战图像风格迁移(Neural Style)。通过对本章的学习,读者会发现,利用卷积神经网络不仅能处理图片分类问题,只要有想法和创意,还能做更多、更有趣的事情。

第9章介绍一种多模型融合方法,在现有的模型遭遇性能提升瓶颈时,可通过搭建一种经过科学融合的新模型达到超过预期的泛化能力。本章依然会基于PyTorch对多模型融合方法进行实战。

第10章介绍一种区别于卷积神经网络的新神经网络结构,即循环神经网络(Recurrent Neural Network,简称RNN)。不同于卷积神经网络强大的图像特征提取能力,循环神经网络主要用于处理有序输入的数据。为了方便读者理解模型如何对有序数据进行处理,本章会基于PyTorch使用循环神经网络来处理一个计算机视觉问题。

第11章讲解自动编码器,它是一种使用非监督学习方法的神经网络。自编码器能够实现很多功能,本章会选取一个图像去噪问题来进行自动编码器实战。

本书前6章的内容可作为后5章的铺垫,前6章的知识偏向基础和理论,不过,只有掌握了这些内容,才能从容应对后5章的实战。这个循序渐进的过程会让读者对知识的理解更深刻,技能提升更迅速。

人工智能在近几年大热,网络上的相关资料良莠不齐且没有体系,即使有优秀的干货,对于基础薄弱的初学者来说起点也太高。本书也是出于对这一现状的考虑,通过从基础到实战、由浅入深的过程,让读者基于PyTorch来使用深度学习方法实际解决一些计算机视觉相关的问题,这样,读者在获取知识的过程中会更有成就感,学起来也会更积极、主动。

感谢家人的鼓励和支持,也感谢张国霞编辑的帮助和付出,笔者才能以更好的方式将这部作品呈现在读者的面前。希望读者能遵从敏捷学习的思路,多实战、多思考并不断进步。在本书中会有很多实例,读者可以举一反三、不断实践,在发现问题时要多思考,毕竟本书涉及的内容有限,若想让自己的能力得到更高层次的提升,则需要获取更多的资料来充实自己。

唐进民

2018年5月

目录

第1章 浅谈人工智能、神经网络和计算机视觉 1

1.1 人工还是智能 1

1.2 人工智能的三起两落 2

1.2.1 两起两落 2

1.2.2 卷土重来 3

1.3 神经网络简史 5

1.3.1 生物神经网络和人工神经网络 5

1.3.2 M-P模型 6

1.3.3 感知机的诞生 9

1.3.4 你好,深度学习 10

1.4 计算机视觉 11

1.5 深度学习+ 12

1.5.1 图片分类 12

1.5.2 图像的目标识别和语义分割 13

1.5.3 自动驾驶 13

1.5.4 图像风格迁移 14


第2章 相关的数学知识 15

2.1 矩阵运算入门 15

2.1.1 标量、向量、矩阵和张量 15

2.1.2 矩阵的转置 17

2.1.3 矩阵的基本运算 18

2.2 导数求解 22

2.2.1 一阶导数的几何意义 23

2.2.2 初等函数的求导公式 24

2.2.3 初等函数的和、差、积、商求导 26

2.2.4 复合函数的链式法则 27


第3章 深度神经网络基础 29

3.1 监督学习和无监督学习 29

3.1.1 监督学习 30

3.1.2 无监督学习 32

3.1.3 小结 33

3.2 欠拟合和过拟合 34

3.2.1 欠拟合 34

3.2.2 过拟合 35

3.3 后向传播 36

3.4 损失和优化 38

3.4.1 损失函数 38

3.4.2 优化函数 39

3.5 激活函数 42

3.5.1 Sigmoid 44

3.5.2 tanh 45

3.5.3 ReLU 46

3.6 本地深度学习工作站 47

3.6.1 GPU和CPU 47

3.6.2 配置建议 49


第4章 卷积神经网络 51

4.1 卷积神经网络基础 51

4.1.1 卷积层 51

4.1.2 池化层 54

4.1.3 全连接层 56

4.2 LeNet模型 57

4.3 AlexNet模型 59

4.4 VGGNet模型 61

4.5 GoogleNet 65

4.6 ResNet 69


第5章 Python基础 72

5.1 Python简介 72

5.2 Jupyter Notebook 73

5.2.1 Anaconda的安装与使用 73

5.2.2 环境管理 76

5.2.3 环境包管理 77

5.2.4 Jupyter Notebook的安装 79

5.2.5 Jupyter Notebook的使用 80

5.2.6 Jupyter Notebook常用的快捷键 86

5.3 Python入门 88

5.3.1 Python的基本语法 88

5.3.2 Python变量 92

5.3.3 常用的数据类型 94

5.3.4 Python运算 99

5.3.5 Python条件判断语句 107

5.3.6 Python循环语句 109

5.3.7 Python中的函数 113

5.3.8 Python中的类 116

5.4 Python中的NumPy 119

5.4.1 NumPy的安装 119

5.4.2 多维数组 119

5.4.3 多维数组的基本操作 125

5.5 Python中的Matplotlib 133

5.5.1 Matplotlib的安装 133

5.5.2 创建图 133


第6章 PyTorch基础 142

6.1 PyTorch中的Tensor 142

6.1.1 Tensor的数据类型 143

6.1.2 Tensor的运算 146

6.1.3 搭建一个简易神经网络 153

6.2 自动梯度 156

6.2.1 torch.autograd和Variable 156

6.2.2 自定义传播函数 159

6.3 模型搭建和参数优化 162

6.3.1 PyTorch之torch.nn 162

6.3.2 PyTorch之torch.optim 167

6.4 实战手写数字识别 169

6.4.1 torch和torchvision 170

6.4.2 PyTorch之torch.transforms 171

6.4.3 数据预览和数据装载 173

6.4.4 模型搭建和参数优化 174


第7章 迁移学习 180

7.1 迁移学习入门 180

7.2 数据集处理 181

7.2.1 验证数据集和测试数据集 182

7.2.2 数据预览 182

7.3 模型搭建和参数优化 185

7.3.1 自定义VGGNet 185

7.3.2 迁移VGG16 196

7.3.3 迁移ResNet50 203

7.4 小结 219


第8章 图像风格迁移实战 220

8.1 风格迁移入门 220

8.2 PyTorch图像风格迁移实战 222

8.2.1 图像的内容损失 222

8.2.2 图像的风格损失 223

8.2.3 模型搭建和参数优化 224

8.2.4 训练新定义的卷积神经网络 226

8.3 小结 232


第9章 多模型融合 233

9.1 多模型融合入门 233

9.1.1 结果多数表决 234

9.1.2 结果直接平均 236

9.1.3 结果加权平均 237

9.2 PyTorch之多模型融合实战 239

9.3 小结 246


第10章 循环神经网络 247

10.1 循环神经网络入门 247

10.2 PyTorch之循环神经网络实战 249

10.3 小结 257


第11章 自动编码器 258

11.1 自动编码器入门 258

11.2 PyTorch之自动编码实战 259

11.2.1 通过线性变换实现自动编码器模型 260

11.2.2 通过卷积变换实现自动编码器模型 267

11.3 小结 273

标签
python
产品特色