Атрибут layout
Атрибут layout класса Tensor определяет способ физического расположения данных в памяти. Этот атрибут имеет важное значение для производительности операций и совместимости с различными библиотеками. Атрибут доступен только для чтения и возвращает объект типа torch.layout.
Синтаксис
tensor.layout
Атрибут возвращает одно из следующих значений:
-
torch.strided- данные хранятся в виде ступенчатого массива (по умолчанию) -
torch.sparse_coo- данные хранятся в формате разреженного тензора COO
Пример
Давайте создадим обычный тензор и проверим его атрибут layout:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = t.layout
print(res)
Результат выполнения кода:
torch.strided
Пример
Давайте создадим разреженный тензор и проверим его атрибут layout:
import torch
indices = torch.tensor([[0, 1], [2, 3]])
values = torch.tensor([10, 20])
t = torch.sparse_coo_tensor(indices, values, size=(2, 4))
res = t.layout
print(res)
Результат выполнения кода:
torch.sparse_coo
Пример
Атрибут layout можно использовать для проверки типа тензора перед выполнением операций:
import torch
t1 = torch.tensor([1, 2, 3])
t2 = torch.sparse_coo_tensor(
torch.tensor([[0], [1]]),
torch.tensor([5]),
size=(2, 2)
)
print(t1.layout)
print(t2.layout)
if t1.layout == torch.strided:
print("t1 is strided")
Результат выполнения кода:
torch.strided
torch.sparse_coo
"t1 is strided"
Смотрите также
-
атрибут
dtype,
который определяет тип данных элементов тензора -
атрибут
device,
который показывает устройство, где хранится тензор -
атрибут
is_contiguous,
который проверяет, является ли тензор непрерывным в памяти -
атрибут
shape,
который определяет размерность тензора