在PyTorch中用torch.zero和torch.zero_like创建零张量

1,711 阅读3分钟

简介

在本教程中,我们将学习如何通过使用torch.zero()和torch.zero_like()函数在PyTorch中创建零张量。零张量是指所有值都为零的张量,如下图所示。

这个例子显示了大小为2×2、3×3和2×3的二维零张量。

PyTorch Zeros - torch.zeros and torch.zeros_like

(来源)

使用torch.zero()的PyTorch零张量

通过使用torch.zero函数,你可以在PyTorch中轻松创建带有所有零的张量。让我们通过几个例子来了解这个函数。但在此之前,我们必须导入PyTorch库,如下图所示

在[0]。

import torch;

例子 - 1:用torch.zero()创建二维零张量

在第一个例子中,我们要创建一个大小为3×5的零张量。为此,我们在torch.zero函数中以列表形式传递这个尺寸,如下所示。

In[1]:

zero_tensor = torch.zeros(size = [3,5])

zero_tensor

Out[1]:

tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])

我们也可以用一个元组而不是列表来传递大小,如下图所示。

In[2]:

zero_tensor = torch.zeros(size = (3,5))

zero_tensor

Out[2]:

tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])

例子 - 2 : 用特定数据类型创建零张量

默认情况下,火炬零点函数会创建数据类型为float的张量。这就是为什么上面的例子中的零张量有小数的零。我们可以通过使用dtype参数明确指定数据类型。

在下面的例子中,我们传递的dtype是int,在输出中,我们可以看到所有的零都是int类型,没有任何小数点。

In [3]:

zero_tensor = torch.zeros(size = (3,5), dtype =int)

zero_tensor

输出[3]。

tensor([[0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]])

例子 - 3 : 用Torch.zeros()创建3维零张量

在这个例子中,我们将在PyTorch中创建3维的零点张量,如下图所示。

In[4]:

zero_tensor = torch.zeros(size = (2,3,5), dtype =int)

zero_tensor

输出[4]。

tensor([[[0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0]],

        [[0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0]]])

用PyTorch的零点张量 torch.zeros_like()

PyTorch中的torch.zeros_like()函数可以用来创建与另一个张量相同大小的零张量作为其参考。这真的很有用,因为它节省了你的时间,从计算其他张量的大小,然后用它来创建零张量的两个步骤。另一方面,torch.zero_like()只是一个创建零张量的步骤。

例子 - 1 : 用torch.zero_like()创建2维零张量

让我们首先用随机值创建一个张量,其大小将用于创建零点张量。我们把这个张量的名称传递给torch.zeros_like函数

In[5]:

random_tensor = torch.rand(size=(4,5))

random_tensor

Out[5]:

tensor([[0.0974, 0.5907, 0.5231, 0.1925, 0.2946],
        [0.7735, 0.1797, 0.0895, 0.4779, 0.9663],
        [0.0556, 0.1394, 0.0433, 0.9831, 0.3034],
        [0.8552, 0.9015, 0.6390, 0.6234, 0.9691]])

在[6]中。

zero_like_tensor = torch.zeros_like(random_tensor,dtype =int)

zero_like_tensor

Out[6]:

tensor([[0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]])

例子 - 2 : 用torch.zeros_like()创建3维零张量

同样,让我们创建一个大小为2x4x5的三维随机值张量,然后在torch.zeros_like函数中使用它。

在[7]中。

random_tensor = torch.rand(size=(2,4,5))

random_tensor

Out[7]:

tensor([[[0.0702, 0.4700, 0.8626, 0.5981, 0.2569],
         [0.5060, 0.4742, 0.7492, 0.3597, 0.8754],
         [0.7581, 0.8954, 0.3205, 0.7038, 0.3167],
         [0.1799, 0.9890, 0.9624, 0.2595, 0.6935]],

        [[0.0338, 0.9996, 0.2049, 0.0127, 0.1300],
         [0.6330, 0.4086, 0.6630, 0.0960, 0.5759],
         [0.1510, 0.3219, 0.5052, 0.5823, 0.8093],
         [0.1546, 0.9815, 0.6459, 0.1247, 0.1438]]])

在[8]中。

zero_like_tensor = torch.zeros_like(random_tensor,dtype =int)

zero_like_tensor

Out[8]:

tensor([[[0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0]],

        [[0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0]]])

The postCreating Zero Tensor in PyTorch with torch.zeros and torch.zeros_likeappeared first onMLK - Machine Learning Knowledge.