DEV Community

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

Posted on • Updated on

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

Buy Me a Coffee

*Memos:

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

*Memos:

  • isinf() 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([8,
                          5.,
                          torch.nan,
                          torch.inf,
                          3.+0.j,
                          3.+7.j,
                          complex(torch.nan, torch.inf),
                          True])
torch.isinf(input=my_tensor)
my_tensor.isinf()
# tensor([False, False, False, True, False, False, True, False])

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

my_tensor = torch.tensor([[[8,
                            5.],
                           [torch.nan,
                            torch.inf]],
                          [[3.+0.j,
                            3.+7.j],
                           [complex(torch.nan, torch.inf),
                            True]]])
torch.isinf(input=my_tensor)
# tensor([[[False, False], [False, True]],
#         [[False, False], [True, 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, getting the 0D or more D tensor of zero or more boolean values as shown below:

*Memos:

  • isposinf() can be used with torch or a tensor.
  • The 1st argument(input) with torch or using a tensor(Required-Type:tensor of int, float or bool).
  • There is out argument with torch(Optional-Type:tensor): *Memos:
    • out= must be used.
    • My post explains out argument.
import torch

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

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

my_tensor = torch.tensor([[[8,
                            5.],
                           [torch.nan,
                            torch.inf]],
                          [[3.,
                            3.7],
                           [-torch.inf,
                            True]]])
torch.isposinf(input=my_tensor)
# tensor([[[False, False], [False, True]],
#         [[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, getting the 0D or more D tensor of zero or more boolean values as shown below:

*Memos:

  • isneginf() can be used with torch or a tensor.
  • The 1st argument(input) with torch or using a tensor(Required-Type:tensor of int, float or bool).
  • There is out argument with torch(Optional-Type:tensor): *Memos:
    • out= must be used.
    • My post explains out argument.
import torch

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

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

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

Top comments (0)