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:**

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:**

**Parameter:**

tensor_object is a tensor.

**Return:**

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

**Representation:**

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

#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:**

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

Check for Negative Infinite

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

**Working:**

- Twelve (12) is not infinity, so it is finite (False)
- Thirty-four (34) is not infinity, so it is finite (False)
- Fifty-six (56) is not infinity, so it is finite (False)
- One (1) is not infinity, so it is finite (False)
- 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

#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:**

- The -inf is negative infinity (True)
- Thirty-four (34) is neither infinity nor nan, so it is Finite (False)
- Fifty-six (56) is neither infinity nor nan, so it is Finite (False)
- The nan is not a number, so it is not Infinity (False)
- 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

#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:**

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:**

- The -inf is negative infinity (True), -inf is negative infinity (True).
- 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).
- 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).
- The nan is not a number, so it is not infinite (False). The nan is not a number, so it is not infinite (False).
- 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:**

**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

#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:**

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

Check for Negative Infinite

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

**Working:**

- Twelve (12) is not infinity, so it is finite (False).
- Thirty-four (34) is not infinity, so it is finite (False).
- Fifty-six (56) is not infinity, so it is finite (False).
- One (1) is not infinity, so it is finite (False).
- 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

#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:**

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

Check for Negative Infinite

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

**Working:**

- The -inf is negative infinity (True).
- Thirty-four (34) is neither infinity nor nan, so it is Finite (False).
- Fifty-six (56) is neither infinity nor nan, so it is Finite (False).
- The nan is not a number, so it is not Infinity (False).
- 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

#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:**

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:**

- The -inf is negative infinity (True). The -inf is negative infinity (True).
- 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).
- 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).
- The nan is not a number, so it is not infinite (False). The nan is not a number, so it is not infinite (False).
- 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.