DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

gt(), lt(), ge() and le() in PyTorch

My post explains equal(), eq() and ne().

gt() can check the 1st tensor is greater than the 2nd tensor element-wise as shown below:

*Memos:

  • gt() can be called both from torch and a tensor.
  • The tensors can be 0D or more D tensors.
  • One or more complex numbers cannot be used.
  • gt() and greater() are the same because greater() is the alias of gt():
import torch

tensor1 = torch.tensor(5)
tensor2 = torch.tensor([[3, 5, 4], [6, 3, 5]])
torch.gt(tensor1, tensor2)
tensor1.gt(tensor2)
# tensor([[True, False, True], [False,  True, False]])
torch.gt(tensor2, tensor1)
tensor2.gt(tensor1)
# tensor([[False, False, False], [ True, False, False]])

tensor1 = torch.tensor([[5, 0, 3]])
tensor2 = torch.tensor([[5, 5, 5], [0, 0, 0], [3, 3, 3]])
torch.gt(tensor1, tensor2)
tensor1.gt(tensor2)
# tensor([[False, False, False],
#         [True, False, True], 
#         [True, False, False]])
torch.gt(tensor2, tensor1)
tensor2.gt(tensor1)
# tensor([[False, True, True],
#         [False, False, False],
#         [False, True, False]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.gt(tensor1, tensor2)
tensor1.gt(tensor2)
# tensor([[[True, False, False], [False, True, False]],
#         [[False, False, False], [False, False, False]]])
torch.gt(tensor2, tensor1)
tensor2.gt(tensor1)
# tensor([[[False, True, False], [False, False, False]],
#         [[False, False, True], [True, False, True]]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2., 7., 3.], [6., 3., True]],
                        [[5., False, 4.], [8., 9., 7.]]])
torch.gt(tensor1, tensor2)
tensor1.gt(tensor2)
# tensor([[[True, False, False], [False, True, False]],
#         [[False, False, False], [False, False, False]]])
torch.gt(tensor2, tensor1)
tensor2.gt(tensor1)
# tensor([[[False, True, False], [False, False, False]],
#         [[False, False, True], [True, False, True]]])

tensor1 = torch.tensor([[6, 9, 1], [5, 0, 3]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.gt(tensor1, tensor2)
tensor1.gt(tensor2)
# tensor([[[True, True, False], [False, False, True]],
#         [[True, True, False], [False, False, False]]])
torch.gt(tensor2, tensor1)
tensor2.gt(tensor1)
# tensor([[[False, False, True], [True, True, False]],
#         [[False, False, True], [True, True, True]]])
Enter fullscreen mode Exit fullscreen mode

lt() can check the 1st tensor is less than the 2nd tensor element-wise as shown below:

*Memos:

  • lt() can be called both from torch and a tensor.
  • The tensors can be 0D or more D tensors.
  • One or more complex numbers cannot be used.
  • lt() and less() are the same because less() is the alias of lt():
import torch

tensor1 = torch.tensor(5)
tensor2 = torch.tensor([[3, 5, 4], [6, 3, 5]])
torch.lt(tensor1, tensor2)
tensor1.lt(tensor2)
# tensor([[False, False, False], [True, False, False]])
torch.lt(tensor2, tensor1)
tensor2.lt(tensor1)
# tensor([[ True, False, True], [False, True, False]])

tensor1 = torch.tensor([[5, 0, 3]])
tensor2 = torch.tensor([[5, 5, 5], [0, 0, 0], [3, 3, 3]])
torch.lt(tensor1, tensor2)
tensor1.lt(tensor2)
# tensor([[False, True, True],
#         [False, False, False],
#         [False, True, False]])
torch.lt(tensor2, tensor1)
tensor2.lt(tensor1)
# tensor([[False, False, False],
#         [True, False, True],
#         [True, False, False]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.lt(tensor1, tensor2)
tensor1.lt(tensor2)
# tensor([[[False, True, False], [False, False, False]],
#         [[False, False, True], [True, False, True]]])
torch.lt(tensor2, tensor1)
tensor2.lt(tensor1)
# tensor([[[True, False, False], [False, True, False]],
#         [[False, False, False], [False, False, False]]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2., 7., 3.], [6., 3., True]],
                        [[5., False, 4.], [8., 9., 7.]]])
torch.lt(tensor1, tensor2)
tensor1.lt(tensor2)
# tensor([[[False,  True, False], [False, False, False]],
#         [[False, False, True], [True, False, True]]])
torch.lt(tensor2, tensor1)
tensor2.lt(tensor1)
# tensor([[[True, False, False], [False, True, False]],
#         [[False, False, False], [False, False, False]]])

tensor1 = torch.tensor([[6, 9, 1], [5, 0, 3]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.lt(tensor1, tensor2)
tensor1.lt(tensor2)
# tensor([[[False, False, True], [True, True, False]],
#        [[False, False, True], [True, True, True]]])
torch.lt(tensor2, tensor1)
tensor2.lt(tensor1)
# tensor([[[True, True, False], [False, False, True]],
#         [[True, True, False], [False, False, False]]])
Enter fullscreen mode Exit fullscreen mode

ge() can check the 1st tensor is greater than or equal to the 2nd tensor element-wise as shown below:

*Memos:

  • ge() can be called both from torch and a tensor.
  • The tensors can be 0D or more D tensors.
  • One or more complex numbers cannot be used.
  • ge() and greater_equal() are the same because greater_equal() is the alias of ge():
import torch

tensor1 = torch.tensor(5)
tensor2 = torch.tensor([[3, 5, 4], [6, 3, 5]])
torch.ge(tensor1, tensor2)
tensor1.ge(tensor2)
# tensor([[True, True, True], [False, True, True]])
torch.ge(tensor2, tensor1)
tensor2.ge(tensor1)
# tensor([[False, True, False], [True, False, True]])

tensor1 = torch.tensor([[5, 0, 3]])
tensor2 = torch.tensor([[5, 5, 5], [0, 0, 0], [3, 3, 3]])
torch.ge(tensor1, tensor2)
tensor1.ge(tensor2)
# tensor([[True, False, False],
#         [True, True, True],
#         [True, False, True]])
torch.ge(tensor2, tensor1)
tensor2.ge(tensor1)
# tensor([[True, True, True],
#         [False, True, False],
#         [False, True, True]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.ge(tensor1, tensor2)
tensor1.ge(tensor2)
# tensor([[[True, False, True], [True, True, True]],
#         [[True, True, False], [False, True, False]]])
torch.ge(tensor2, tensor1)
tensor2.ge(tensor1)
# tensor([[[False, True, True], [True, False, True]],
#         [[True, True, True], [True, True, True]]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2., 7., 3.], [6., 3., True]],
                        [[5., False, 4.], [8., 9., 7.]]])
torch.ge(tensor1, tensor2)
tensor1.ge(tensor2)
# tensor([[[True, False, True], [True, True, True]],
#         [[True, True, False], [False, True, False]]])
torch.ge(tensor2, tensor1)
tensor2.ge(tensor1)
# tensor([[[False, True, True], [True, False, True]],
#         [[True, True, True], [True, True, True]]])

tensor1 = torch.tensor([[6, 9, 1], [5, 0, 3]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.ge(tensor1, tensor2)
tensor1.ge(tensor2)
# tensor([[[True, True, False], [False, False, True]],
#         [[True, True, False], [False, False, False]]])
torch.ge(tensor2, tensor1)
tensor2.ge(tensor1)
# tensor([[[False, False, True], [True, True, False]],
#         [[False, False, True], [True, True, True]]])
Enter fullscreen mode Exit fullscreen mode

le() can check the 1st tensor is less than or equal to the 2nd tensor element-wise as shown below:

*Memos:

  • le() can be called both from torch and a tensor.
  • The tensors can be 0D or more D tensors.
  • One or more complex numbers cannot be used.
  • le() and less_equal() are the same because less_equal() is the alias of le():
import torch

tensor1 = torch.tensor(5)
tensor2 = torch.tensor([[3, 5, 4], [6, 3, 5]])
torch.le(tensor1, tensor2)
tensor1.le(tensor2)
# tensor([[False, True, False], [True, False, True]])

torch.le(tensor2, tensor1)
tensor2.le(tensor1)
# tensor([[True, True, True], [False, True, True]])

tensor1 = torch.tensor([[5, 0, 3]])
tensor2 = torch.tensor([[5, 5, 5], [0, 0, 0], [3, 3, 3]])
torch.le(tensor1, tensor2)
tensor1.le(tensor2)
# tensor([[True, True, True],
#         [False, True, False],
#         [False, True, True]])
torch.le(tensor2, tensor1)
tensor2.le(tensor1)
# tensor([[True, False, False],
#         [True, True, True],
#         [True, False, True]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.le(tensor1, tensor2)
tensor1.le(tensor2)
# tensor([[[False, True, True], [True, False, True]],
#         [[True, True, True], [True, True, True]]])
torch.le(tensor2, tensor1)
tensor2.le(tensor1)
# tensor([[[True, False, True], [True, True, True]],
#         [[True, True, False], [False, True, False]]])

tensor1 = torch.tensor([[5, 0, 3], [6, 9, 1]])
tensor2 = torch.tensor([[[2., 7., 3.], [6., 3., True]],
                        [[5., False, 4.], [8., 9., 7.]]])
torch.le(tensor1, tensor2)
tensor1.le(tensor2)
# tensor([[[False, True, True], [True, False, True]],
#         [[True, True, True], [True, True, True]]])
torch.le(tensor2, tensor1)
tensor2.le(tensor1)
# tensor([[[True, False, True], [True, True, True]],
#         [[True, True, False], [False, True, False]]])

tensor1 = torch.tensor([[6, 9, 1], [5, 0, 3]])
tensor2 = torch.tensor([[[2, 7, 3], [6, 3, 1]],
                        [[5, 0, 4], [8, 9, 7]]])
torch.le(tensor1, tensor2)
tensor1.le(tensor2)
# tensor([[[False, False, True], [True, True, False]],
#         [[False, False, True], [True, True, True]]])
torch.le(tensor2, tensor1)
tensor2.le(tensor1)
# tensor([[[True, True, False], [False, False, True]],
#         [[True, True, False], [False, False, False]]])
Enter fullscreen mode Exit fullscreen mode

Top comments (0)