In this article, we are going to discuss vector operations in PyTorch. Vectors are a one-dimensional tensor, which is used to manipulate the data. Vector operations are of different types such as mathematical operation, dot product, and linspace.
PyTorch is an optimized tensor library majorly used for Deep Learning applications using GPUs and CPUs. It is one of the widely used Machine learning libraries, others being TensorFlow and Keras.
We can create a vector by using the torch.tensor() function
Syntax:
torch.tensor([value1,value2,.value n])
where values are the input values that take input as a list
Example:
Python3
# importing pytorch module import torch # create an vector A = torch.tensor([ 7058 , 7059 , 7060 , 7061 , 7062 ]) # display print (A) |
Output:
tensor([7058, 7059, 7060, 7061, 7062])
Now let us discuss each vector operation supported under tensor.
Arithmetic operations
The procedure is extremely simple, just create two vectors and perform operations on them like you are performing them on two regular variables.
Example:
Python3
# importing pytorch module import torch # create an vector A A = torch.tensor([ 58 , 59 , 60 , 61 , 62 ]) # create an vector B B = torch.tensor([ 100 , 120 , 140 , 160 , 180 ]) # add two vectors print ( "Addition of two vectors:" , A + B) # subtract two vectors print ( "subtraction of two vectors:" , A - B) # multiply two vectors print ( "multiplication of two vectors:" , A * B) # multiply two vectors print ( "multiplication of two vectors:" , A * B) # divide two vectors print ( "division of two vectors:" , A / B) # floor divide two vectors print ( "floor division of two vectors:" , A / / B) # modulus of two vectors print ( "modulus operation of two vectors:" , A % B) # power of two vectors print ( "power operation of two vectors:" , A * * B) |
Output:
Addition of two vectors: tensor([158, 179, 200, 221, 242])
subtraction of two vectors: tensor([ -42, -61, -80, -99, -118])
multiplication of two vectors: tensor([ 5800, 7080, 8400, 9760, 11160])
multiplication of two vectors: tensor([ 5800, 7080, 8400, 9760, 11160])
division of two vectors: tensor([0.5800, 0.4917, 0.4286, 0.3812, 0.3444])
floor division of two vectors: tensor([0, 0, 0, 0, 0])
modulus operation of two vectors: tensor([58, 59, 60, 61, 62])
power operation of two vectors: tensor([ 0, -4166911448072485343, 0,8747520307384418433, 0])
Unary operations
It is similar to arithmetic operations except that the other vector part is replaced by a constant.
Example:
Python3
# importing pytorch module import torch # create an vector A A = torch.tensor([ 58 , 59 , 60 , 61 , 62 ]) # divide vector by 2 print (A / 2 ) # multiply vector by 2 print (A * 2 ) # subtract vector by 2 print (A - 2 ) |
Output:
tensor([29.0000, 29.5000, 30.0000, 30.5000, 31.0000])
tensor([116, 118, 120, 122, 124])
tensor([56, 57, 58, 59, 60])
Dot product
dot() is used to get the dot product. The vectors in consideration just need to be passed to it.
Syntax:
torch.dot(vector1,vector2)
Example:
Python3
# importing pytorch module import torch # create an vector A A = torch.tensor([ 58 , 59 , 60 , 61 , 62 ]) # create an vector B B = torch.tensor([ 8 , 9 , 6 , 1 , 2 ]) # dot product of the two vectors print (torch.dot(A, B)) |
Output:
tensor(1540)
Linspace function
linspace is used to arrange data linearly in the given space. It is available in the torch package and using linspace() function with values for start and end are enough.
Syntax:
torch.linspace(start,end)
where start is the starting value and end is the ending value.
Example
Python3
# importing pytorch module import torch # arrange the elements from 2 to 10 print (torch.linspace( 2 , 10 )) |
Output:
Plotting a function on the two-dimensional coordinate system
The linspace function is used to plot a function on two-dimensional coordinate systems. For the x-axis, we create a land space from 0 to 10 in an interval of 2.5, and Y will be the function of each x value.
Example 1: sin function
Python3
#import pytorch import torch #import numpy import numpy as np #import matplotlib import matplotlib.pyplot as plt # create lin space from 1 to 12 x = torch.linspace( 1 , 12 ) # sin function y = torch.sin(x) # plot plt.plot(x.numpy(), y.numpy()) # display plt.show() |
Output:
Example 2: cos function
Python3
#import pytorch import torch #import numpy import numpy as np #import matplotlib import matplotlib.pyplot as plt # create lin space from 1 to 12 x = torch.linspace( 1 , 12 ) # cos function y = torch.cos(x) # plot plt.plot(x.numpy(), y.numpy()) # display plt.show() |
Output:
Example 3: tan() function
Python3
#import pytorch import torch #import numpy import numpy as np #import matplotlib import matplotlib.pyplot as plt # create line space from 1 to 12 x = torch.linspace( 1 , 12 ) # tan function y = torch.tan(x) # plot plt.plot(x.numpy(), y.numpy()) # display plt.show() |
Output: