torch.diagonal
-
torch.diagonal(input, offset=0, dim1=0, dim2=1) → Tensor -
Возвращает частичный вид
inputс его диагональными элементами относительноdim1иdim2, добавленными как измерение в конце формы.Аргумент
offsetуправляет тем, какую диагональ учитывать:- Если
offset= 0, это главная диагональ. - Если
offset> 0, это диагональ выше главной. - Если
offset< 0, это диагональ ниже главной.
Применение
torch.diag_embed()к результату этой функции с теми же аргументами дает диагональную матрицу с диагональными элементами входных данных. Однако, уtorch.diag_embed()разные значения по умолчанию для измерений, поэтому их нужно явно указать.- Параметры:
-
- input (Tensor) – входной тензор. Должен быть по крайней мере двумерным.
- offset (int, необязательно) – какую диагональ учитывать. По умолчанию: 0 (главная диагональ).
- dim1 (int, необязательно) – первое измерение относительно которого брать диагональ. По умолчанию: 0.
- dim2 (int, необязательно) – второе измерение относительно которого брать диагональ. По умолчанию: 1.
Примечание
Чтобы получить диагональ для пакета, передайте dim1=-2, dim2=-1.
Примеры:
>>> a = torch.randn(3, 3) >>> a tensor([[-1.0854, 1.1431, -0.1752], [ 0.8536, -0.0905, 0.0360], [ 0.6927, -0.3735, -0.4945]]) >>> torch.diagonal(a, 0) tensor([-1.0854, -0.0905, -0.4945]) >>> torch.diagonal(a, 1) tensor([ 1.1431, 0.0360]) >>> x = torch.randn(2, 5, 4, 2) >>> torch.diagonal(x, offset=-1, dim1=1, dim2=2) tensor([[[-1.2631, 0.3755, -1.5977, -1.8172], [-1.1065, 1.0401, -0.2235, -0.7938]], [[-1.7325, -0.3081, 0.6166, 0.2335], [ 1.0500, 0.7336, -0.3836, -1.1015]]]) - Если
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.diagonal.html