写点什么

最完整的 PyTorch 数据科学家指南(1)

发布于: 2020 年 10 月 02 日

进行深度学习时您将需要的所有PyTorch功能。从实验/研究的角度来看。



PyTorch 已经成为现在创建神经网络的事实上的标准之一,我喜欢它的界面。但是,对于初学者来说,要获得它有些困难。



我记得几年前经过一些广泛的实验之后才选择PyTorch。实话实说,我花了很多时间才捡起来,但我很高兴我从Keras搬到 PyTorch。 凭借其高度可定制性和python语法, PyTorch可以与 他人一起工作,这是我的荣幸,我将其推荐给任何希望通过深度学习进行繁重工作的人。



因此,在本PyTorch指南中, 我将尝试减轻PyTorch对于初学者的痛苦,并介绍在使用Pytorch 创建任何神经网络时需要的一些最重要的类和模块。



但是,这并不是说它仅针对初学者,因为 我还将谈论 PyTorch提供的高可定制性,并谈论自定义的Layers,Datasets,Dataloaders和Loss函数

张量



张量是PyTorch的基本构建块,简单地说,它们是NumPy数组,但在GPU上。在这一部分中,我将列出一些在使用Tensors时可以使用的最常用的操作。这绝不是张量可以执行的详尽操作列表,但是在进行更令人兴奋的部分之前了解张量是有帮助的。

1.创建张量



我们可以通过多种方式创建PyTorch张量。这包括从NumPy数组转换为张量。下面只是一个要点,下面是一些示例,但是您可以  像使用NumPy数组一样使用张量来做更多的事情。







2.张量运算

同样,您可以对这些张量执行很多操作。







注意: 什么是PyTorch变量?在以前的Pytorch版本中,Tensor和Variables曾经是不同的,并且提供了不同的功能,但是现在不赞成使用Variable API ,并且所有用于Tensors的变量 方法都可以使用。因此,如果您不了解它们,那很好,因为它们不是必需的,如果您了解它们,则可以将它们忘记。

nn.模块



但是话又说回来,如果Pytorch没有提供很多现成的层,而这些层在各种神经网络体系结构中非常频繁地使用,则Pytorch不会被广泛使用。一些例子是:nn.Linear,nn.Conv2d,nn.MaxPool2d,nn.ReLU,  nn.BatchNorm2d,nn.Dropout,nn.Embedding,  ,,  ,,,nn.GRU/nn.LSTMnn.Softmaxnn.LogSoftmaxnn.MultiheadAttentionnn.TransformerEncodernn.TransformerDecoder







在这里,我们定义了一个非常简单的网络,该网络接受大小为784的输入,并以顺序方式将其通过两个线性层。但是要注意的是,我们可以在定义前向通过时定义任何类型的计算,这使得PyTorch高度可定制以用于研究目的。例如,在疯狂的实验模式下,我们可能使用了以下网络,在该网络上我们任意附加了图层。在这里,我们在将输入再次添加回第二个线性层(跳过连接)之后,将输出从第二个线性层再次发送回第一个线性层。





我们还可以检查神经网络正向传递是否起作用。通常,我首先创建一些随机输入,然后将其通过我创建的网络进行传递。





关于层的一句话



Pytorch非常强大,您实际上可以使用自己创建任何新的实验层 nn.Module。例如,而不是使用预定义的线性层 nn.Linear。从Pytorch以上,我们可以已经创建了 定制线性层





您将看到如何在中包装权重张量。nn.Parameter.这样做是为了使张量被视为模型参数。



参数是 Tensor子类,当与Module-一起使用时具有非常特殊的属性 -当将它们分配为模块属性时,它们会自动添加到其参数列表中,并将出现在 parameters()迭代器中。

稍后您将看到,model.parameters()迭代器将成为优化器的输入。但是稍后会更多。现在,我们现在可以在任何PyTorch网络中使用此自定义层,就像其他任何层一样。





但是话又说回来,如果Pytorch没有提供很多现成的层,而这些层在各种神经网络体系结构中非常频繁地使用,则Pytorch不会被广泛使用。一些例子是:nn.Linear,nn.Conv2d,nn.MaxPool2d,nn.ReLU,  nn.BatchNorm2d,nn.Dropout,nn.Embedding,nn.GRU/nn.LSTM,nn.Softmax,nn.LogSoftmax,nn.MultiheadAttention,nn.TransformerEncoder,nn.TransformerDecoder



以上就是Torch的基础操作,下一篇文章会为同学们讲解卷积部分的操作。



发布于: 2020 年 10 月 02 日阅读数: 1093
用户头像

微信公众号:计算机与AI 2020.09.19 加入

数据科学科班出身,专注分享计算机和人工智能相关知识。

评论

发布
暂无评论
最完整的PyTorch数据科学家指南(1)