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.