Что означает layout = torch.strided? - PullRequest
2 голосов
/ 19 июня 2019

Когда я просматривал документацию по pytorch, я встретил термин layout = torch.strided во многих функциях. Может ли кто-нибудь помочь мне понять, где он используется и как. В описании говорится, что это желаемый макет возвращенного Тензор. Что означает макет и сколько существует типов макетов?

torch.rand(*sizes, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)

1 Ответ

0 голосов
/ 19 июня 2019

Согласно официальной документации по pytorch здесь ,

torch.layout - это объект, который представляет макет памяти torch.Tensor. В настоящее время мы поддерживаем torch.strided (плотные тензоры) и есть экспериментальная поддержка torch.sparse_coo (редкие тензоры COO).

torch.strided представляет плотные тензоры и является макетом памяти, который чаще всего используется. Каждый полосатый тензор имеет связанный torch.Storage, который хранит свои данные. Эти тензоры обеспечивают многомерный, многогранный вид хранилища. Шаги - это список целые числа: k-й шаг представляет собой скачок в памяти, необходимый перейти от одного элемента к следующему в k-м измерении Тензор. Эта концепция позволяет выполнять многие тензорные Операции эффективно.

Пример:

>>> x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
>>> x.stride()
(5, 1)

>>> x.t().stride()
(1, 5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...