In this article, we are going to see how to compute the element-wise remainder in PyTorch. we have two methods to compute element-wise reminders one is torch.remainder() and the other one is torch.fmod() let’s go discuss both of them one by one.
torch.remainder() method
The PyTorch remainder() method computes the element-wise remainder of the division operation (dividend is divided by divisor). The dividend is a tensor whereas the divisor may be a scalar quantity or tensor. The values must be an integer and float only. before moving further let’s see the syntax of the given method.
Syntax: torch.remainder(input, other, out=None)
Parameters:
- input (Tensor or Scalar) : the dividend element.
- other (Tensor or Scalar) : the divisor element.
Return: This method returns a new tensor with remainder values.
Example 1:
The following program is to compute the element-wise remainder of two single-dimension tensors.
Python3
# importing torch import torch # define the dividend tens_1 = torch.tensor([ 5. , - 12. , 25. , - 10. , 30 ]) print ( "Dividend: " , tens_1) # define the divisor tens_2 = torch.tensor([ 5. , - 5. , - 6. , 5. , 8. ]) print ( "Divisor: " , tens_2) # compute the remainder remainder = torch.remainder(tens_1, tens_2) # display result print ( "Remainder: " , remainder) |
Output:
Dividend: tensor([ 5., -12., 25., -10., 30.])
Divisor: tensor([ 5., -5., -6., 5., 8.])
Remainder: tensor([ 0., -2., -5., -0., 6.])
Example 2:
The following program is to compute the element-wise remainder of two 2D tensors.
Python3
# importing torch import torch # define the dividend tens_1 = torch.tensor([[ 5. , - 12. ], [ - 10. , 30. ], ]) print ( "\n Dividend: \n" , tens_1) # define the divisor tens_2 = torch.tensor([[ 5. , - 5. ], [ 5. , 8. ], ]) print ( "\n Divisor: \n" , tens_2) # compute the remainder remainder = torch.remainder(tens_1, tens_2) # display result print ( "\n Remainder: \n" , remainder) |
Output:
Dividend: tensor([[ 5., -12.], [-10., 30.]]) Divisor: tensor([[ 5., -5.], [ 5., 8.]]) Remainder: tensor([[ 0., -2.], [-0., 6.]])
torch.fmod() method
This method gives also helps us to compute the element-wise remainder of division by the divisor. The divisor may be a number or a Tensor. When the divisor is zero it will return NaN. before moving further let’s see the syntax of the given method.
Syntax: torch.fmod(input, other)
Parameters:
- input (Tensor) : the dividend.
- other (Tensor or Scalar) : the divisor.
Return: This method returns a new tensor with remainder values.
Example 1:
The following program is to compute the element-wise remainder of two single-dimension tensors.
Python3
# importing torch import torch # define the dividend tens_1 = torch.tensor([ 5. , - 10. , - 17. , 19. , 20. ]) print ( "\n\n Dividend: " , tens_1) # define the divisor tens_2 = torch.tensor([ 2. , 5. , 17. , 7. , 10. ]) print ( "\n Divisor: " , tens_2) # compute the remainder using fmod() remainder = torch.fmod(tens_1, tens_2) # display result print ( "\n Remainder: " , remainder) |
Output:
Dividend: tensor([ 5., -10., -17., 19., 20.]) Divisor: tensor([ 2., 5., 17., 7., 10.]) Remainder: tensor([1., -0., -0., 5., 0.])
Example 2:
The following program is to compute the element-wise remainder of two 2D tensors.
Python3
# importing torch import torch # define the dividend tens_1 = torch.tensor([[ 16. , - 12. ], [ - 10. , 30. ], ]) print ( "\n\n Dividend: \n" , tens_1) # define the divisor tens_2 = torch.tensor([[ 5. , - 6. ], [ 5. , 8. ], ]) print ( "\n Divisor: \n" , tens_2) # compute the remainder using fmod() remainder = torch.fmod(tens_1, tens_2) # display result print ( "\n Remainder:\n" , remainder) |
Output:
Dividend: tensor([[ 16., -12.], [-10., 30.]]) Divisor: tensor([[ 5., -6.], [ 5., 8.]]) Remainder: tensor([[1., -0.], [-0., 6.]])