Two-Dimensional Tensors in Pytorch

30 Aug, 2021
PyTorch is a python library developed by Facebook to run and train machine learning and deep learning models. In PyTorch everything is based on tensor operations.
Two-dimensional tensors are nothing but matrices or vectors of two-dimension with specific datatype, of n rows and n columns.
Representation: A two-dimensional tensor has the below representation.
torch.tensor([[3,2,1]
               [6,5,4]
               [9,8,7]]) 
We can create a tensor by passing a list of data, or randomly generating values with randn and also with arrange function that takes values within certain intervals. 
Example :
Python3
# importing libraryimport torch  # list of data in 1d formy=torch.tensor([2.5,5.6,8.1,4.6,3.2,6.7]) # reshaping it to 2dx=y.view(2,3)print('First tensor is: {}'.format(x),'\nSize of it:{}'.format(x.size()),      '\ntype of tensor:{}\n'.format(x.dtype)) # random values of size 2X2x2=torch.randn(2,2)print('Second tensor is: {}'.format(x2),'\nSize of it:{}'.format(x2.size()),      '\ntype of tensor:{}\n'.format(x2.dtype)) # integers within this rangey1=torch.arrange(0,8)x1=y1.view(4,2)print('Third tensor is: {}'.format(x1),'\nSize of it:{}'.format(x1.size()),      '\ntype of tensor:{}'.format(x1.dtype))
  
Output: 
First tensor is: tensor([[2.5000, 5.6000, 8.1000],
        [4.6000, 3.2000, 6.7000]]) 
Size of it:torch.Size([2, 3]) 
type of tensor:torch.float32

Second tensor is: tensor([[1.2532, 1.3558],
        [0.5496, 1.7828]]) 
Size of it:torch.Size([2, 2]) 
type of tensor:torch.float32

Third tensor is: tensor([[0, 1],
        [2, 3],
        [4, 5],
        [6, 7]]) 
Size of it:torch.Size([4, 2]) 
type of tensor:torch.int64
Multiplication of tensors can be either element-wise multiplication(multiplying each element by element) or metrics multiplication (multiplying the corresponding column with the corresponding row). In deep learning, we use the concept of metrics multiplication with the required size.
 
Example :
Python3
import torch a=torch.arrange(0,9) # reshaping dataa=mat_a.view(3,3) b=torch.arrange(0,9) # reshaping datab=mat_b.view(3,3) mat_mul=torch.matmul(mat_a,mat_b)elem_mul=torch.mul(mat_a,mat_b)print('Tensor after elementwise multiplication:{}'.format(elem_mul),      '\n Tensor after matrix multiplication: {}'.format(mat_mul))
  
Output:
 
Tensor after elementwise multiplication:tensor([[ 0,  1,  4],
        [ 9, 16, 25],
        [36, 49, 64]]) 
 Tensor after matrix multiplication: tensor([[ 15,  18,  21],
        [ 42,  54,  66],
        [ 69,  90, 111]])
 
In the tensor, we can access any column or row values through slicing, and for the particular elements we use indexing. To obtain only the value in the tensor we use .item().
 
Example :
 
Python3
import torch # defining the tensorx4=torch.arrange(4,13)y4=x4.view(3,3) # slicing is performedprint('First column has the values:{}'.format(y4[:,0]))print('Second row has the values:{}'.format(y4[1,:])) # indexing a  particular elementprint('Data at the index 1,2 :{}'.format(y4[1][2]))
Output:
First column has the values:tensor([ 4,  7, 10])
Second row has the values:tensor([7, 8, 9])
Data at the index 1,2 :9
Three-dimensional tensors are nothing but matrices or vectors of rank 3. A 3d tensor is created by adding another level with brackets to that of the two-dimensional vector. In image processing, we use RGB images that have 3 dimensions of color pixels.
Python3
import torch # tensor with 3 dimensionx=torch.tensor([[[11,12,13],[14,15,16],[17,18,19]]]) # 1d tensorx1=torch.arrange(10,19) # reshaping it to 3d tensorx1=x1.view(1,3,3)print(x,'\n',x1)
  
Output: 
tensor([[[11, 12, 13],
         [14, 15, 16],
         [17, 18, 19]]]) 
 tensor([[[10, 11, 12],
         [13, 14, 15],
         [16, 17, 18]]])
 
ruhelaa48
Picked
Python-PyTorch
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.