Spec-Zone.ru › PyTorch 2

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, это диагональ, расположенная ниже главной диагонали.
Параметры
  • input (Tensor) – входной тензор.
  • diagonal (int, необязательно) – диагональ для рассмотрения
Ключевые аргументы

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API