Python

PyTorch – Isneginf()

We will check if the elements in a tensor are negative infinite or not using the isneginf() method in this PyTorch tutorial.

PyTorch is an open-source framework available with a Python programming language. Tensor is a multidimensional array that is used to store the data. To use a tensor, we have to import the torch module. To create a tensor, the method used is tensor().

Syntax:

torch.tensor(data)

Where the data is a multi-dimensional array.

Torch.isneginf()

Isneginf() in PyTorch returns True for the elements if the element is negative infinity. Otherwise, it returns False. It takes one parameter.

Syntax:

torch.isneginf(tensor_object)

Parameter:

tensor_object is a tensor.

Return:

It returns a boolean tensor with respect to the actual tensor.

Representation:

Positive Infinity - float('inf')

Negative Infinity - float('-inf')

Not a number - float('nan’)

Example 1:

In this example, we will create a tensor with one dimension that has 5 elements and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a tensor

data1 = torch.tensor([12,34,56,1, float('-inf')])

 

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

Output:

Actual Tensor:

tensor([12., 34., 56., 1., -inf])

Check for Negative Infinite

tensor([False, False, False, False, True])

Working:

  1. Twelve (12) is not infinity, so it is finite (False)
  2. Thirty-four (34) is not infinity, so it is finite (False)
  3. Fifty-six (56) is not infinity, so it is finite (False)
  4. One (1) is not infinity, so it is finite (False)
  5. The -inf is negative infinity (True)

Example 2:

In this example, we will create a tensor with one dimension that has 5 elements and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a tensor

data1 = torch.tensor([float('-inf'),34,56,float('nan'), float('inf')])

 

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

<strong>Output:</strong>

Actual Tensor:

tensor([-inf, 34., 56., nan, inf])

Check for Negative Infinite

tensor([ True, False, False, False, False])

Working:

  1. The -inf is negative infinity (True)
  2. Thirty-four (34) is neither infinity nor nan, so it is Finite (False)
  3. Fifty-six (56) is neither infinity nor nan, so it is Finite (False)
  4. The nan is not a number, so it is not Infinity (False)
  5. The inf is positive infinity, so it is not negative (False)

Example 3:

In this example, we will create a tensor with two dimensions that has 5 elements in each row and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a 2D tensor

data1=torch.tensor([[float('-inf'),34,56,float('nan'), float('inf')],[float('-inf'),100,-4,float('nan'), float('inf')]])

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

Output:

Actual Tensor:

tensor([[-inf, 34., 56., nan, inf],

[-inf, 100., -4., nan, inf]])

Check for Negative Infinite

tensor([[ True, False, False, False, False],

[ True, False, False, False, False]])

Working:

  1. The -inf is negative infinity (True), -inf is negative infinity (True).
  2. Thirty-four (34) is neither infinity nor nan, so it is Finite (False). One-hundred (100) is neither infinity nor nan, so it is Finite (False).
  3. Fifty-six (56) is neither infinity nor nan, so it is Finite (False). Negative four (-4) is neither infinity nor nan, so it is Finite (False).
  4. The nan is not a number, so it is not infinite (False). The nan is not a number, so it is not infinite (False).
  5. The inf is positive infinity (False). The inf is positive infinity (False).

Work with CPU

If you want to run an isneginf() function on the CPU, we have to create a tensor with a cpu() function. This will run on a CPU machine. When we create a tensor, this time, we can use the cpu() function.

Syntax:

torch.tensor(data).cpu()

Example 1:

In this example, we will create a tensor with one dimension that has 5 elements on the cpu and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a tensor

data1 = torch.tensor([12,34,56,1, float('-inf')]).cpu()

 

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

Output:

Actual Tensor:

tensor([12., 34., 56., 1., -inf])

Check for Negative Infinite

tensor([False, False, False, False, True])

Working:

  1. Twelve (12) is not infinity, so it is finite (False).
  2. Thirty-four (34) is not infinity, so it is finite (False).
  3. Fifty-six (56) is not infinity, so it is finite (False).
  4. One (1) is not infinity, so it is finite (False).
  5. The -inf is negative infinity (True).

Example 2:

In this example, we will create a tensor with one dimension that has 5 elements on the cpu and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a tensor

data1 = torch.tensor([float('-inf'),34,56,float('nan'), float('inf')]).cpu()

 

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

Output:

Actual Tensor:

tensor([-inf, 34., 56., nan, inf])

Check for Negative Infinite

tensor([ True, False, False, False, False])

Working:

  1. The -inf is negative infinity (True).
  2. Thirty-four (34) is neither infinity nor nan, so it is Finite (False).
  3. Fifty-six (56) is neither infinity nor nan, so it is Finite (False).
  4. The nan is not a number, so it is not Infinity (False).
  5. The inf is positive infinity, so it is not negative (False).

Example 3:

In this example, we will create a tensor with two dimensions that has 5 elements on the cpu in each row and check if these 5 elements are negative infinite or not.

#import torch module

import torch

 

#create a 2D tensor

data1=torch.tensor([[float('-inf'),34,56,float('nan'), float('inf')],[float('-inf'),100,-4,float('nan'), float('inf')]]).cpu()

#display

print("Actual Tensor: ")

print(data1)

 

print("Check for Negative Infinite")

print(torch.isneginf(data1))

Output:

Actual Tensor:

tensor([[-inf, 34., 56., nan, inf],

[-inf, 100., -4., nan, inf]])

Check for Negative Infinite

tensor([[ True, False, False, False, False],

[ True, False, False, False, False]])

Working:

  1. The -inf is negative infinity (True). The -inf is negative infinity (True).
  2. Thirty-four (34) is neither infinity nor nan, so it is Finite (False). One-hundred (100) is neither infinity nor nan, so it is Finite (False).
  3. Fifty-six (56) is neither infinity nor nan, so it is Finite (False). Negative four (-4) is neither infinity nor nan, so it is Finite (False).
  4. The nan is not a number, so it is not infinite (False). The nan is not a number, so it is not infinite (False).
  5. The inf is positive infinity (False). The inf is positive infinity (False).

Conclusion

In this PyTorch lesson, we discussed about the isneginf() method. It returns False for the elements if the element is not negative infinity. Otherwise, it returns True.

About the author

Gottumukkala Sravan Kumar

B tech-hon's in Information Technology; Known programming languages - Python, R , PHP MySQL; Published 500+ articles on computer science domain