张倩报道

60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型

近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框架。想发论文,不学 PyTorch 怎么行?那么,入门 PyTorch 深度学习需要多久?PyTorch 的一份官方教程表示:只需要 60 分钟。

教程链接:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

这是一份非常简洁的学习材料,目标是让学习者了解 PyTorch 的 Tensor 库和神经网络,以及如何训练一个可以进行图像分类神经网络

虽然是入门课程,但也有一定门槛:课程参与者要具备 Numpy 基础知识。

该教程共分为五节:

  1. PyTorch 简介

  2. Autograde:自动微分

  3. 神经网络

  4. 训练一个分类器

  5. 数据并行

本教程的五大板块。

第 1 节「PyTorch 简介」介绍了 PyTorch 的基本技术细节,如 Tensor、基本操作句法,还包括 Torch Tensor 与 Numpy 数组之间的转换、CUDA Tensor 等基础知识。

如果想进一步了解 PyTorch 的 Tensor 操作信息,还可以按文中给出的链接找到相应教程,包括数学运算、线性代数、随机数等。

第 2 节介绍了 PyTorch 中用于微分的包——Autograd。它是 PyTorch 神经网络的核心,为张量的所有操作提供了自动微分。为了更加直观地理解与之相关的术语,教程还给出了一些例子。

第 3 节介绍了训练一个神经网络的常见步骤,包括定义具有一些可学习参数的神经网络、遍历输入数据集、通过神经网络处理输入、计算损失、将梯度传播回网络参数、更新网络权重等。

在学会定义网络、计算损失、更新权重之后,第 4 节开始讲解如何训练一个分类器。教程使用了 CIFAR10 数据集,将训练步骤分为 5 步:

1. 载入 CIFAR10 并将其标准化;

2. 定义一个卷积神经网络

3. 定义损失函数优化器

4. 训练网络;

5. 在测试集上测试网络

CIFAR10 数据集。

此外,这一节还讲解了如何在 GPU 上训练神经网络

如果想进一步加速训练过程,还可以选修第 5 节——数据并行,学习如何在多个 GPU 上训练网络。

在这一教程中,每个小节都有 GoogleColab 链接,可以让学习者实时运行代码,获取实战经验。

如果想在本地运行文件,还可以下载 Notebook。

参考链接:

  • https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

  • https://news.ycombinator.com/item?id=21240057

  • https://www.youtube.com/watch?v=u7x8RXwLKcA

入门深度学习模型PyTorch
5
相关数据
损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

线性代数技术

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~