4分钟PyTorch入门
2019年08月08日 由 sunlei 发表
777156
0
如果你打算入门这风行一世的深度学习领域,这篇文章应该在合适不过了,本文协助你在2分钟内开始使用python PyTorch和用python编写的代码。对于那些不知道
PyTorch是什么的人来说,它是一个来自Facebook的开源深度学习平台,提供了从研究原型到生产部署的无缝路径。
事不宜迟,让我们直接开始吧。
Tensors张量
它是一个多维矩阵,包含单个数据类型的元素,即声明为:
操作
PyTorch包含许多关于张量的数学运算。此外,它还提供了许多实用程序来有效地序列化张量和任意类型以及其他有用的实用程序。下面张量加减法的一个例子。
PyTorch和NumPy
你可以很容易地在PyTorch和NumPy之间来回切换下面是一个将np.matrix转换为Pytorch并将尺寸更改为单列的简单示例:
这里是一个有用
的GitHub repo,概述了PyTorch<->numpy转换。
CPU和GPUs
PuTorch允许变量使用torch.cuda.device上下文管理器动态更改设备。以下是示例代码:
PyTorch变量
一个变量只是一个包裹在张量周围的薄层。它支持几乎所有由张量定义的api。变量被巧妙地定义为自动分级包的一部分。它提供实现任意标量值函数的自动微分的类和函数。
下面是PyTorch变量用法的一个简单例子:
反向传播
利用反向传播算法计算相对于输入权值和偏差的损失梯度,以便在下一次优化迭代中更新权重,最终减少损失。PyTorch在分层地定义变量的反向方法来执行反向传播方面很聪明。
下面是一个简单的反向传播例子,用sin(x)来计算微分:
简单线性回归(Simple Linear Regression)
现在我们已经收集了所有的弹药来开始学习机器学习的例子与简单的线性回归问题。我们将通过四个简单的步骤来实现:
SLR:步骤1
在第1步中,我们创建一个由等式y=w.x+b创建的人工数据集,并注入随机误差。请看下面的例子:
SLR:步骤2
在第二步中,我们定义了一个简单的类线性回归模型,它使用方法forward和构造函数,使用torch.nn.Linear对输入数据进行线性转换。
SLR:步骤3
下一步是使用MSELossas成本函数和SGD作为优化器对模型进行训练。
SLR:步骤4
训练结束后,让我们直观地检查一下我们的模型。
本文到这里就差不多结束了,当然作为一个新手你有很多东西需要学习,所以从这里介绍的代码开始使用
python notebook。随心所欲,开始玩转PyTorch。
原文链接:https://medium.com/towards-artificial-intelligence/pytorch-in-2-minutes-9e18875990fd