你的位置:亚洲日韩欧美人成黄瓜_好嗨呦直播app下载_大胆西西人体gogo_美女下面直流白水视频_人妻中出无码一区二区_最新婬乱小说午夜视频_无码艳妇乳肉豪妇荡乳 > 在线看Av免费无码 >


91色在色在线线播放dim=0

发布日期:2022-09-23 05:36    点击次数:192


台湾永久特黄裸体秀91色在色在线线播放

 概况以准确有用的方式构建神经网罗是招聘人员在深度学习工程师中最受追捧的妙技之一。PyTorch 是一个 主要用于深度学习的Python 库。 PyTorch 最基本亦然最弥留的部分之一是创建张量,张量是数字、向量、矩阵或任何 n 维数组。在构建神经网罗时为了裁减诡计速率必须幸免使用显式轮回,咱们不错使用矢量化操作来幸免这种轮回。在构建神经网罗时,鼓胀快地诡计矩阵运算的智力至关弥留。

“为什么不使用 NumPy 库呢?”

关于深度学习,咱们需要诡计模子参数的导数。 PyTorch 提供了在反向传播时追踪导数的智力而 NumPy 则莫得,这在Pytorch中被称为“Auto Grad”。PyTorch 为使用 GPU 的快速实施提供了内置扶植。这在磨练模子方面至关弥留。由于 Numpy 枯竭将其诡计转移到 GPU 的智力,因此磨练模子的工夫最终会变得畸形大。

通盘使用 PyTorch 的深度学习面孔都从创建张量首先。让咱们望望一些必应融会的函数,它们是任何波及构建神经网罗的深度学习面孔的撑持。

torch.tensor() torch.sum() torch.index_select() torch.stack() torch.mm()

在安设完Pytorch后,在代码中不错径直导入:

 

# Import torch and other required modules import torch 

 

torch.tensor()

最初,咱们界说了一个辅助函数,describe (x),它将回归张量 x 的各式属性,举例张量的类型、张量的维度和张量的实践。

 

# Helper function def describe(x):   print("Type: {}".format(x.type()))   print("Shape/size: {}".format(x.shape))   print("Values: \n{}".format(x) 

 

使用 torch.Tensor 在 PyTorch 中创建张量

PyTorch 允许咱们使用 torch 包以多种不同的方式创建张量。 创建张量的一种步伐是通过指定其维度来首先化一个当场张量

 

describe(torch.Tensor(2, 3)) 

使用 Python 列表以声明方式创建张量

咱们还不错使用 python 列表创建张量。 咱们只需要将列表当作参数传递给函数,咱们就有了它的张量花样。

 

x = torch.Tensor([[1, 2, 3],[4, 5, 6]])  describe(x) 

 

使用 NumPy 数组创建张量

咱们也不错从NumPy 数组中创建PyTorch 张量。 张量的类型是 Double Tensor 而不是默许的 Float Tensor。 这对应于 NumPy 的数据类型是float64,如下所示。

 

import numpy as np npy = np.random.rand(2, 3) describe(torch.from_numpy(npy)) 

 

咱们不成用张量做什么?张量必须是实数或复数,不应是字符串或字符。

 

torch.tensor([[1, 2], [3, 4, 5]])   --------------------------------------------------------------------------- ValueError                                Traceback (most recent call last) <ipython-input-5-28787d136593> in <module>       1 # Example 3 - breaking (to illustrate when it breaks) ----> 2 torch.tensor([[1, 2], [3, 4, 5]])  ValueError: expected sequence of length 2 at dim 1 (got 3) 

 

torch.tensor() 组成了任何 PyTorch 面孔的中枢,从字面上看,因为它便是张量。

 

torch.sum()

此函数复返输入张量中通盘元素的总额。

 

describe(torch.sum(x, dim=0,keepdims=True)) 

淌若你了解 NumPy ,可能仍是提防到,关于 2D 张量,咱们将行暗意为维度 0,女性将列暗意为维度 1。torch.sum() 函数允许咱们诡计行和列的总额。

咱们还为 keepdims 传递 True 以保留效率中的维度。 通过界说 dim = 1 咱们告诉函数按列折叠数组。

 

torch.sum(npy,dim=1,keepdims=True)  --------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last) <ipython-input-17-1617bf9e8a37> in <module>()       1 # Example 3 - breaking (to illustrate when it breaks) ----> 2 torch.sum(npy,dim=1,keepdims=True)  TypeError: sum() received an invalid combination of arguments - got (numpy.ndarray, keepdims=bool, dim=int), but expected one of:  * (Tensor input, *, torch.dtype dtype)       didn't match because some of the keywords were incorrect: keepdims, dim  * (Tensor input, tuple of ints dim, bool keepdim, *, torch.dtype dtype, Tensor out)  * (Tensor input, tuple of names dim, bool keepdim,玩弄邻居有奶水人妻 *, torch.dtype dtype, Tensor out) 

 

该函数在计认为议和蚀本函数时畸形有用。

torch.index_select()

这个函数复返一个新的张量,该张量使用索引中的条件(LongTensor)沿维度 dim 对输入张量进行索引。

 

indices = torch.LongTensor([0, 2]) describe(torch.index_select(x, dim=1, index=indices)) 

 

咱们不错将索引当作张量传递并将轴界说为 1,该函数复返一个新的张量大小 rows_of_original_tensor x length_of_indices_tensor。

 

indices = torch.LongTensor([0, 0]) describe(torch.index_select(x, dim=0, index=indices)) 

 

咱们不错将索引当作张量传递并将轴界说为 0,该函数复返大小为

columns_of_original_tensor x length_of_indices_tensor 的新张量。

 

indices = torch.FloatTensor([0, 2]) describe(torch.index_select(x, dim=1, index=indices)) 

此函数在张量的非连气儿索引这种复杂索引中很有用。

torch.stack()

这将沿新维度衔接一系列张量。

 

describe(torch.stack([x, x, x],dim = 0)) 

咱们不错将咱们想要衔接的张量当作一个张量列表传递,dim 为 0,以沿着行堆叠它。

 

describe(torch.stack([x, x, x],dim = 1)) 

咱们不错将咱们想要衔接的张量当作一个张量列表传递,dim 为 1,以沿着列堆叠它。

 

y = torch.tensor([3,3]) describe(torch.stack([x, y, x],dim = 1))  -------------------------------------------------------------------------- RuntimeError                              Traceback (most recent call last) <ipython-input-37-c97227f5da5c> in <module>()       1 # Example 3 - breaking (to illustrate when it breaks)       2 y = torch.tensor([3,3]) ----> 3 describe(torch.stack([x, y, x],dim = 1))  RuntimeError: stack expects each tensor to be equal size, but got [2, 3] at entry 0 and [2] at entry 1 

 

该函数与torch.index_select()集会使用畸形有用,不错压扁矩阵。

torch.mm()

此函数实施矩阵的矩阵乘法。

 

mat1 =torch.randn(3,2) describe(torch.mm(x, mat1)) 

 

只需将矩阵当作参数传递,咱们就不错搪塞地实施矩阵乘法,该函数将产生一个新的张量当作两个矩阵的乘积。

 

mat1 = np.random.randn(3,2) mat1 = torch.from_numpy(mat1).to(torch.float32) describe(torch.mm(x, mat1)) 

 

在上头的例子中,咱们界说了一个 NumPy 数组然后将其革新为 float32 类型的张量。 当今咱们不错见效地对张量实施矩阵乘法。 两个张量的数据类型必须匹配才能见效操作。

 

mat1 =torch.randn(2,3) describe(torch.mm(x, mat1))  --------------------------------------------------------------------------- RuntimeError                              Traceback (most recent call last) <ipython-input-62-18e7760efd23> in <module>()       1 # Example 3 - breaking (to illustrate when it breaks)       2 mat1 =torch.randn(2,3) ----> 3 describe(torch.mm(x, mat1))  RuntimeError: mat1 and mat2 shapes cannot be multiplied (2x3 and 2x3) 

 

为了实施见效的矩阵乘法运算,矩阵1的列和矩阵2的行必须匹配。 torch.mm() 函数效用的是矩阵乘法的基本章程。 即使矩阵的法例研讨,它仍然不会自动与另一个矩阵的转置相乘,用户必须手动界说它。

为了在反向传播时诡计导数,必须概况有用地实施矩阵乘法,这便是 torch.mm () 出现的所在。

回归

咱们对 5 个基本 PyTorch 函数的商讨到此罢休。 从基本的张量创建到具有特定用例的高等和寂寂无闻的函数,如 torch.index_select (),PyTorch 提供了很多这么的函数,使数据科学宠爱者的使命更搪塞。



    热点资讯

    相关资讯