Тип bool
Тип данных bool в PyTorch используется для представления логических значений
True и False. Тензоры этого типа часто применяются в масках,
условных операциях и при сравнении тензоров. Логический тип занимает 1 байт
на каждый элемент и поддерживает все основные логические операции.
Синтаксис
torch.tensor(data, dtype=torch.bool)
Где data - данные для создания тензора (список, массив или скаляр).
Пример
Создадим тензор логического типа из списка значений:
import torch
t = torch.tensor([True, False, True], dtype=torch.bool)
print(t)
Результат выполнения кода:
tensor([ True, False, True])
Пример
Логический тип автоматически получается при операциях сравнения:
import torch
a = torch.tensor([1, 2, 3, 4, 5])
b = torch.tensor([3, 2, 1, 4, 5])
t = a == b
print(t)
print(t.dtype)
Результат выполнения кода:
tensor([False, True, False, True, True])
torch.bool
Пример
Использование логической маски для индексации тензора:
import torch
t = torch.tensor([10, 20, 30, 40, 50])
mask = t > 25
res = t[mask]
print(res)
Результат выполнения кода:
tensor([30, 40, 50])
Пример
Преобразование чисел в логический тип (нули становятся False,
ненулевые - True):
import torch
t = torch.tensor([0, 1, 0, -5, 3], dtype=torch.bool)
print(t)
Результат выполнения кода:
tensor([False, True, False, True, True])
Пример
Логические операции с тензорами типа bool:
import torch
a = torch.tensor([True, True, False, False])
b = torch.tensor([True, False, True, False])
res1 = a & b # логическое И
res2 = a | b # логическое ИЛИ
res3 = ~a # логическое НЕ
print(res1)
print(res2)
print(res3)
Результат выполнения кода:
tensor([ True, False, False, False])
tensor([ True, True, True, False])
tensor([False, False, True, True])
Смотрите также
-
тип
uint8,
который используется для хранения целых беззнаковых чисел -
тип
int8,
который используется для хранения целых чисел со знаком -
функцию
promote_types,
которая определяет результирующий тип при операциях -
функцию
can_cast,
которая проверяет возможность безопасного приведения типов