简介
在本教程中,我们将学习如何通过使用torch.zero()和torch.zero_like()函数在PyTorch中创建零张量。零张量是指所有值都为零的张量,如下图所示。
这个例子显示了大小为2×2、3×3和2×3的二维零张量。

(来源)
使用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.