Spec-Zone.ru › PyTorch 2.14

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, optional) – диагональ для рассмотрения
Именованные аргументы:

out (Tensor, optional) – выходной тензор.

См. также

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])

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.diag.html

Spec-Zone.ru

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