Несколько условий в PyTorch
Несколько условий на один тензор
складывают по ячейкам: оператор
& оставляет True
только там, где истинны обе маски,
оператор | - где истинна
хотя бы одна. Знак ~ переворачивает
флаги в каждой позиции.
У & и | приоритет выше,
чем у знаков сравнения, поэтому
каждое сравнение записывают в скобках.
Оставим в ряде только числа строго
между 2 и 5 (границы
не входят):
import torch
values = torch.tensor([1, 3, 4, 6])
print((values > 2) & (values < 5)) # выведет tensor([False, True, True, False])
Через | отметим ячейки, где
значение меньше 2 или больше
5:
import torch
values = torch.tensor([1, 3, 4, 6])
print((values < 2) | (values > 5)) # выведет tensor([ True, False, False, True])
Оператор ~ применим к уже
готовой маске:
import torch
values = torch.tensor([1, 3, 4, 6])
print(~(values == 3)) # выведет tensor([ True, False, True, True])
Создайте ряд из пяти целых чисел
и выведите маску, где значение
больше 0 и одновременно
меньше 10.
Задайте ряд оценок и выведите маску,
где оценка не ниже 3 и не выше
4.
Создайте ряд из четырёх чисел
и выведите маску, где ячейка
меньше 2 или больше 8.