DEV Community

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

Posted on • Edited on

isreal, isnan and isfinite in PyTorch

Buy Me a Coffee

*Memos:

isreal() can check if the zero or more elements of a 0D or more D tensor are real-valued, getting the 0D or more D tensor of zero or more boolean values as shown below:

*Memos:

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

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

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

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

isnan() can check if the zero or more elements of a 0D or more D tensor are NaN(Not a Number), getting the 0D or more D tensor of zero or more boolean values shown below:

*Memos:

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

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

my_tensor = torch.tensor([[torch.nan, -5, torch.inf, 8.],
                          [-torch.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([[[torch.nan, -5], [torch.inf, 8.]],
                          [[-torch.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

isfinite() can check if the zero or more elements of a 0D or more D tensor are finity, getting the 0D or more D tensor of zero or more boolean values as shown below:

*Memos:

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

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

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

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

Top comments (0)