PyTorch 是一个基于 Torch 的 Python 开源机器学习库,它主要由 Facebook 的人工智能小组开发。该框架不仅能够实现强大的 GPU 加速,还支持动态的神经网络。因此,很多互联网的大厂在进行深度学习时,都会使用该框架,比如 Facebook、Twitter、GMU 和 Salesforce 等。 本课程一共 15 章,从浅入深地为同学们阐述了 PyTorch 的语法结构和应用场景。由于本课程是 PyTorch 的基础课程,因此本课程跳过了复杂的数学计算和公式推导,以一种更容易让人理解的方式为同学们讲述了深度学习的相关知识,并利用 PyTorch 对其进行实现。
在学习完基础知识之后,为了使同学们能够熟练的掌握如何利用 PyTorch 定义神经网络模型并进行模型的训练。本课程还引入了三个实战实验。
如下所示,本实验主要的目的就是完成下列这种手写数字的识别。为此,本实验将前面章节所有的 PyTorch 知识点进行了整合,建立了一个简单的全连接神经网络模型,用于识别手写字符。
在本实验中,我们引入了卷积神经网络的概念,对卷积神经网络所包含的组件进行了简单的介绍。然后使用 VGG16 神经网络完成了对 CIFAR 数据集的识别模型。CIFAR-10 数据集由 10 个类的 60000 个 32x32 的彩色图像组成,即每个类有 6000 个图像。如下:
在训练深度学习模型时,有时候我们没有海量的训练样本,只有少数的训练样本(比如几百个图片),几百个训练样本显然对于深度学习远远不够。这时候,我们可以使用别人预训练好的网络模型权重,在此基础上进行训练,这就是迁移学习(Transfer Learning)。本实验利用迁移学习的概念,引入 resenet18 网络完成了蚂蚁和蜜蜂的分类模型。我们所用的数据集合如下: