torch.diag
-
torch.diag(input, diagonal=0, *, out=None) → Tensor -
- Если
inputявляется вектором (тензором 1-й размерности), то возвращает 2-мерный квадратный тензор с элементамиinputна диагонали. - Если
inputявляется матрицей (тензором 2-й размерности), то возвращает 1-мерный тензор с диагональными элементамиinput.
Аргумент
diagonalуправляет тем, какая диагональ рассматривается:- Если
diagonal= 0, это главная диагональ. - Если
diagonal> 0, это диагональ, расположенная выше главной диагонали. - Если
diagonal< 0, это диагональ, расположенная ниже главной диагонали.
- Параметры
- Ключевые аргументы
-
out (Tensor, необязательно) – выходной тензор.
См. также
torch.diagonal()всегда возвращает диагональ своего входного значения.torch.diagflat()всегда создает тензор с диагональными элементами, заданными входным значением.Примеры:
Получение квадратной матрицы, где входной вектор — это диагональ:
>>> a = torch.randn(3) >>> a tensor([ 0.5950,-0.0872, 2.3298]) >>> torch.diag(a) tensor([[ 0.5950, 0.0000, 0.0000], [ 0.0000,-0.0872, 0.0000], [ 0.0000, 0.0000, 2.3298]]) >>> torch.diag(a, 1) tensor([[ 0.0000, 0.5950, 0.0000, 0.0000], [ 0.0000, 0.0000,-0.0872, 0.0000], [ 0.0000, 0.0000, 0.0000, 2.3298], [ 0.0000, 0.0000, 0.0000, 0.0000]])Получение k-й диагонали заданной матрицы:
>>> a = torch.randn(3, 3) >>> a tensor([[-0.4264, 0.0255,-0.1064], [ 0.8795,-0.2429, 0.1374], [ 0.1029,-0.6482,-1.6300]]) >>> torch.diag(a, 0) tensor([-0.4264,-0.2429,-1.6300]) >>> torch.diag(a, 1) tensor([ 0.0255, 0.1374]) - Если
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.diag.html