Функция isinf
Функция isinf проверяет каждый элемент тензора на наличие бесконечных значений (как положительных, так и отрицательных). Она возвращает новый тензор типа torch.bool, который содержит True для элементов, равных бесконечности, и False для всех остальных. Функция полезна для обнаружения численных нестабильностей в вычислениях, например, при переполнении экспоненты или делении на ноль.
Синтаксис
torch.isinf(input)
Параметр input - это тензор, элементы которого необходимо проверить.
Пример
Давайте создадим тензор, содержащий конечные числа и бесконечность, и применим к нему функцию isinf:
import torch
t = torch.tensor([1.0, float('inf'), -2.5, float('-inf')])
res = torch.isinf(t)
print(res)
Результат выполнения кода:
tensor([False, True, False, True])
Пример
Функция также работает с целочисленными тензорами, однако, поскольку целочисленные типы не могут представлять бесконечность, все элементы всегда будут False:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.isinf(t)
print(res)
Результат выполнения кода:
tensor([False, False, False, False, False])
Пример
Часто функцию isinf используют для фильтрации данных. Например, чтобы заменить все бесконечные значения на нули:
import torch
t = torch.tensor([1.0, float('inf'), -3.0, float('-inf')])
t[torch.isinf(t)] = 0.0
print(t)
Результат выполнения кода:
tensor([1., 0., -3., 0.])
Пример
Функция isinf работает с тензорами произвольной размерности. Проверим двумерный тензор на наличие бесконечных значений:
import torch
t = torch.tensor([
[1.0, float('inf')],
[2.5, -3.0],
])
res = torch.isinf(t)
print(res)
Результат выполнения кода:
tensor([
[False, True],
[False, False],
])
Смотрите также
-
функцию
isnan,
которая проверяет элементы тензора на значение NaN -
функцию
isfinite,
которая проверяет элементы тензора на конечные значения -
функцию
isclose,
которая проверяет, близки ли элементы двух тензоров друг к другу -
функцию
allclose,
которая проверяет, все ли элементы двух тензоров близки друг к другу