Spec-Zone.ru › PyTorch 2

torch.linalg.vander

torch.linalg.vander(x, N=None) → Tensor

Генерирует матрицу Вандермонда.

Возвращает матрицу Вандермонда VV

V=(1x1x12…x1N−11x2x22…x2N−11x3x32…x3N−1⋮⋮⋮⋱⋮1xnxn2…xnN−1).V = \begin{pmatrix} 1 & x_1 & x_1^2 & \dots & x_1^{N-1}\\ 1 & x_2 & x_2^2 & \dots & x_2^{N-1}\\ 1 & x_3 & x_3^2 & \dots & x_3^{N-1}\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ 1 & x_n & x_n^2 & \dots & x_n^{N-1} \end{pmatrix}.

для N > 1. Если N= None, то N = x.size(-1) таким образом, чтобы выход был квадратной матрицей.

Поддерживает входные данные типов float, double, cfloat, cdouble и integral. Также поддерживает пакет векторов, и если x является набором векторов, то выходные данные имеют те же размерности пакета.

Отличия от numpy.vander:

  • В отличие от numpy.vander, эта функция возвращает степени x в возрастающем порядке. Чтобы получить их в обратном порядке, вызовите linalg.vander(x, N).flip(-1).
Параметры

x (Tensor) – тензор формы (*, n) , где * представляет нуль или более размерностей пакета, состоящих из векторов.

Ключевые аргументы

N (int, необязательно) – Количество столбцов на выходе. Значение по умолчанию: x.size(-1)

Пример:

>>> x = torch.tensor([1, 2, 3, 5])
>>> linalg.vander(x)
tensor([[  1,   1,   1,   1],
        [  1,   2,   4,   8],
        [  1,   3,   9,  27],
        [  1,   5,  25, 125]])
>>> linalg.vander(x, N=3)
tensor([[ 1,  1,  1],
        [ 1,  2,  4],
        [ 1,  3,  9],
        [ 1,  5, 25]])

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.linalg.vander.html

Spec-Zone.ru

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