РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
235 of 769 menu

Функция isnan

Функция isnan выполняет поэлементную проверку тензора на наличие значений NaN (Not a Number). Она возвращает новый тензор той же формы, что и исходный, содержащий логические значения True для элементов, которые являются NaN, и False для всех остальных элементов. Функция полезна при отладке вычислений, когда в результате математических операций могут возникать нечисловые значения, например, при делении нуля на ноль или при вычислении логарифма от отрицательного числа.

Синтаксис

torch.isnan(tensor)

Функция принимает один обязательный параметр:

  • tensor - входной тензор, элементы которого проверяются на NaN.

Пример

Давайте создадим тензор, содержащий значения NaN, и проверим его с помощью функции isnan:

import torch t = torch.tensor([1.0, float('nan'), 3.0, float('nan'), 5.0]) res = torch.isnan(t) print(res)

Результат выполнения кода:

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

Пример

Функция isnan работает и с многомерными тензорами. Проверим двумерный тензор на наличие NaN:

import torch t = torch.tensor([ [1.0, float('nan'), 3.0], [float('nan'), 5.0, 6.0], [7.0, 8.0, float('nan')] ]) res = torch.isnan(t) print(res)

Результат выполнения кода:

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

Пример

Используем isnan для фильтрации и подсчёта количества NaN в тензоре:

import torch t = torch.tensor([1.0, float('nan'), 3.0, 4.0, float('nan')]) is_nan_mask = torch.isnan(t) nan_count = torch.sum(is_nan_mask) print(f"Number of NaN values: {nan_count.item()}") clean_tensor = t[~is_nan_mask] print(clean_tensor)

Результат выполнения кода:

"Number of NaN values: 2" tensor([1., 3., 4.])

Пример

Функция isnan также работает с тензорами, содержащими комплексные числа. Для комплексных чисел NaN считается, если NaN присутствует либо в действительной, либо в мнимой части:

import torch import math t = torch.tensor([ complex(1.0, 2.0), complex(float('nan'), 3.0), complex(4.0, float('nan')) ]) res = torch.isnan(t) print(res)

Результат выполнения кода:

tensor([False, True, True])

Смотрите также

  • функцию isinf,
    которая проверяет элементы тензора на бесконечность
  • функцию isfinite,
    которая проверяет элементы на конечность
  • функцию isclose,
    которая проверяет близость элементов к заданному значению
  • функцию allclose,
    которая проверяет близость всех элементов двух тензоров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить