DEV Community

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

Posted on • Edited on

is_floating_point, is_complex and is_nonzero in PyTorch

Buy Me a Coffee

*Memos:

is_floating_point() can check if the 0D or more D tensor of zero or more elements is float type, getting the scalar of a boolean value as shown below:

*Memos:

  • is_floating_point() 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([])
my_tensor = torch.tensor(5.)
my_tensor = torch.tensor(torch.nan)
my_tensor = torch.tensor(torch.inf)

torch.is_floating_point(input=my_tensor)
my_tensor.is_floating_point()
# True

my_tensor = torch.tensor(8)
my_tensor = torch.tensor(3.+0.j)
my_tensor = torch.tensor(3.+7.j)
my_tensor = torch.tensor(complex(torch.nan, torch.inf))
my_tensor = torch.tensor(True)

torch.is_floating_point(input=my_tensor)
# False

my_tensor = torch.tensor([5., torch.nan, torch.inf])

torch.is_floating_point(input=my_tensor)
# True

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

is_complex() can check if the 0D or more D tensor of zero or more elements is complex type, getting the scalar of a boolean value as shown below:

*Memos:

  • is_complex() 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(3.+0.j)
my_tensor = torch.tensor(3.+7.j)
my_tensor = torch.tensor(complex(torch.nan, torch.inf))

torch.is_complex(input=my_tensor)
my_tensor.is_complex()
# True

my_tensor = torch.tensor([])
my_tensor = torch.tensor(8)
my_tensor = torch.tensor(5.)
my_tensor = torch.tensor(torch.nan)
my_tensor = torch.tensor(torch.inf)
my_tensor = torch.tensor(True)

torch.is_complex(input=my_tensor)
# False

my_tensor = torch.tensor([3.+0.j, 3.+7.j, complex(torch.nan, torch.inf)])

torch.is_complex(input=my_tensor)
# True

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

is_nonzero() can check if the 0D or more D tensor of only one element is a nonzero, getting the scalar of a boolean value as shown below:

*Memos:

  • is_nonzero() 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).
  • There must be only one element in a tensor.
import torch

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

torch.is_nonzero(input=my_tensor)
my_tensor.is_nonzero()
# True

my_tensor = torch.tensor(0)
my_tensor = torch.tensor([0.])
my_tensor = torch.tensor([[0.+0.j]])
my_tensor = torch.tensor([[[False]]])

torch.is_nonzero(input=my_tensor)
# False
Enter fullscreen mode Exit fullscreen mode

Top comments (0)