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