DEV Community

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

Posted on • Updated on

isnan(), isinf(), isposinf() and isneginf() in PyTorch

*Memos:

isnan() can check if the zero or more elements of a 0D or more D tensor are NaN as shown below:

*Memos:

  • isnan() can be used with torch or a tensor.
  • The 1st argument(tensor of int, float, complex or bool) with torch or using a tensor(tensor of int, float, complex or bool) is input(Required).
import torch

my_tensor = torch.tensor(float('nan'))

torch.isnan(input=my_tensor)
my_tensor.isnan()
# tensor(True)

my_tensor = torch.tensor([float('nan'),
                          -5,
                          float('inf'),
                          8.,
                          float('-inf'),
                          3.+0.j,
                          3.+7.j,
                          True])
torch.isnan(input=my_tensor)
# tensor([True, False, False, False, False, False, False, False])

my_tensor = torch.tensor([[float('nan'), -5, float('inf'), 8.],
                          [float('-inf'), 3.+0.j, 3.+7.j, True]])
torch.isnan(input=my_tensor)
# tensor([[True, False, False, False],
#         [False, False, False, False]])

my_tensor = torch.tensor([[[float('nan'), -5], [float('inf'), 8.]],
                          [[float('-inf'), 3.+0.j], [3.+7.j, True]]])
torch.isnan(input=my_tensor)
# tensor([[[True, False], [False, False]],
#         [[False, False], [False, False]]])
Enter fullscreen mode Exit fullscreen mode

isinf() can check if the zero or more elements of a 0D or more D tensor are infinity as shown below:

*Memos:

  • isinf() can be used with torch or a tensor.
  • The 1st argument(tensor of int, float, complex or bool) with torch or using a tensor(tensor of int, float, complex or bool) is input(Required).
import torch

my_tensor = torch.tensor(float('nan'))

torch.isinf(input=my_tensor)
my_tensor.isinf()
# tensor(False)

my_tensor = torch.tensor([float('nan'),
                          -5,
                          float('inf'),
                          8.,
                          float('-inf'),
                          3.+0.j,
                          3.+7.j,
                          True])
torch.isinf(input=my_tensor)
# tensor([False, False, True, False, True, False, False, False])

my_tensor = torch.tensor([[float('nan'), -5, float('inf'), 8.],
                          [float('-inf'), 3.+0.j, 3.+7.j, True]])
torch.isinf(input=my_tensor)
# tensor([[False, False, True, False],
#         [True, False, False, False]])

my_tensor = torch.tensor([[[float('nan'), -5], [float('inf'), 8.]],
                          [[float('-inf'), 3.+0.j], [3.+7.j, True]]])
torch.isinf(input=my_tensor)
# tensor([[[False, False], [True, False]],
#         [[True, False], [False, False]]])
Enter fullscreen mode Exit fullscreen mode

isposinf() can if check the zero or more elements of a 0D or more D tensor are positive infinity as shown below:

*Memos:

  • isposinf() can be used with torch or a tensor.
  • The 1st argument(tensor of int, float or bool) with torch or using a tensor(tensor of int, float or bool) is input(Required).
import torch

my_tensor = torch.tensor(float('nan'))

torch.isposinf(input=my_tensor)
my_tensor.isposinf()
# tensor(False)

my_tensor = torch.tensor([float('nan'),
                          -5,
                          float('inf'),
                          8.,
                          float('-inf'),
                          3.,
                          3.,
                          True])
torch.isposinf(input=my_tensor)
# tensor([False, False, True, False, False, False, False, False])

my_tensor = torch.tensor([[float('nan'), -5, float('inf'), 8.],
                          [float('-inf'), 3., 3., True]])
torch.isposinf(input=my_tensor)
# tensor([[False, False, True, False],
#         [False, False, False, False]])

my_tensor = torch.tensor([[[float('nan'), -5], [float('inf'), 8.]],
                          [[float('-inf'), 3.], [3., True]]])
torch.isposinf(input=my_tensor)
# tensor([[[False, False], [True, False]],
#         [[False, False], [False, False]]])
Enter fullscreen mode Exit fullscreen mode

isneginf() can if check the zero or more elements of a 0D or more D tensor are negative infinity as shown below:

*Memos:

  • isneginf() can be used with torch or a tensor.
  • The 1st argument(tensor of int, float or bool) with torch or using a tensor(tensor of int, float or bool) is input(Required).
import torch

my_tensor = torch.tensor(float('nan'))

torch.isneginf(input=my_tensor)
my_tensor.isneginf()
# tensor(False)

my_tensor = torch.tensor([float('nan'),
                          -5,
                          float('inf'),
                          8.,
                          float('-inf'),
                          3.,
                          3.,
                          True])
torch.isneginf(input=my_tensor)
# tensor([False, False, False, False, True, False, False, False])

my_tensor = torch.tensor([[float('nan'), -5, float('inf'), 8.],
                          [float('-inf'), 3., 3., True]])
torch.isneginf(input=my_tensor)
# tensor([[False, False, False, False],
#         [True, False, False, False]])

my_tensor = torch.tensor([[[float('nan'), -5], [float('inf'), 8.]],
                          [[float('-inf'), 3.], [3., True]]])
torch.isneginf(input=my_tensor)
# tensor([[[False, False], [False, False]],
#         [[True, False], [False, False]]])
Enter fullscreen mode Exit fullscreen mode

Top comments (0)