Introduction
In this tutorial, we will learn how to create zero tensor in PyTorch by using torch.zeros() and torch.zeros_like() functions. Zero tensors are tensors whose all values are zero as shown in the below illustration.
This example shows 2 dimensional zero tensors of size 2×2, 3×3, and 2×3.
PyTorch Zeros Tensors with torch.zeros()
You can easily create Tensors with all zeros in PyTorch by using torch.zeros function. Let us understand this function with the help of a few examples. But before that, we have to import the PyTorch library as shown below –
In [0]:
import torch;
Example – 1 : Creating 2 Dimensional Zero Tensor with torch.zeros()
In the first example, we are creating a zero tensor of size 3×5. For this we pass this size as a list in torch.zeros function as shown below.
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.]])
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.]])
Example – 2 : Creating Zero Tensor with Specific Data Type
By default, the torch zeros function creates the tensor with data type float. This is why the zero tensors in the above examples had zeros with decimals. We can specify the data type explicitly by using dtype parameter.
In the below example, we are passing dtype as int and in output, we can see all zeros are of type int without any decimal points.
zero_tensor = torch.zeros(size = (3,5), dtype =int) zero_tensor
tensor([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]])
Example – 3 : Creating 3 Dimensional Zero Tensor with torch.zeros()
In this example, we are creating 3-dimensional zeros tensor in PyTorch as shown below.
In [4]:
zero_tensor = torch.zeros(size = (2,3,5), dtype =int) zero_tensor
Out[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 Zeros Tensors with torch.zeros_like()
Example – 1 : Creating 2 Dimensional Zero Tensor with torch.zeros_like()
Let us first create a tensor with random values whose size will be used for creating the zeros tensor. We pass the name of this tensor to torch.zeros_like function
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]])
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]])
Example – 2 : Creating 3 Dimensional Zero Tensor with torch.zeros_like()
Again, let us create a 3-D random valued tensor of size 2x4x5 and then use it in torch.zeros_like function.
In [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]]])
zero_like_tensor = torch.zeros_like(random_tensor,dtype =int) zero_like_tensor
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]]])