Функция logical_not
Функция logical_not выполняет логическое отрицание над элементами тензора.
В результате каждый элемент тензора преобразуется в его логическое противоположность:
ненулевые значения становятся False, а нулевые - True.
Если входной тензор уже содержит булевы значения, то они просто инвертируются.
Эта функция полезна для операций с масками и условными выражениями.
Функция принимает на вход один тензор и возвращает новый тензор с булевым типом данных. Она работает поэлементно, то есть каждый элемент обрабатывается независимо от других. Поддерживаются тензоры любой размерности и типов данных, включая целочисленные, числа с плавающей точкой и булевы значения.
Синтаксис
torch.logical_not(input, *, out=None)
Пример
Давайте выполним логическое отрицание для тензора с целыми числами:
import torch
t = torch.tensor([1, 0, -2, 0, 5])
res = torch.logical_not(t)
print(res)
Результат выполнения кода:
tensor([False, True, False, True, False])
В этом примере все ненулевые элементы (1, -2, 5) стали False, а нулевые элементы - True.
Пример
Применим logical_not к тензору с булевыми значениями:
import torch
t = torch.tensor([True, False, True, False])
res = torch.logical_not(t)
print(res)
Результат выполнения кода:
tensor([False, True, False, True])
Как видите, значения просто инвертировались: True стал False, а False - True.
Пример
Используем logical_not для работы с многомерным тензором:
import torch
t = torch.tensor([
[0, 1, 0],
[2, 0, 3],
])
res = torch.logical_not(t)
print(res)
Результат выполнения кода:
tensor([
[ True, False, True],
[False, True, False],
])
Функция работает одинаково для тензоров любой размерности, выполняя операцию над каждым элементом.
Смотрите также
-
функцию
logical_and,
которая выполняет поэлементное логическое И -
функцию
logical_or,
которая выполняет поэлементное логическое ИЛИ -
функцию
logical_xor,
которая выполняет поэлементное логическое исключающее ИЛИ -
функцию
eq,
которая выполняет поэлементное сравнение на равенство