Shortcuts

torch.linalg.vander

torch.linalg.vander(x, N=None) 张量

生成一个范德蒙矩阵。

返回范德蒙矩阵 VV

V=(1x1x12x1N11x2x22x2N11x3x32x3N11xnxn2xnN1).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),因此输出是一个方阵。

支持浮点数、双精度浮点数、复数浮点数、复数双精度浮点数以及整数类型的输入。 还支持向量的批次输入,如果x是向量的批次,那么输出将具有相同的批次维度。

numpy.vander的区别:

  • numpy.vander不同,此函数返回的x的幂是按升序排列的。 要按相反顺序获取它们,请调用linalg.vander(x, N).flip(-1)

Parameters

x (张量) – 形状为 (*, n) 的张量,其中 * 表示零个或多个批量维度,由向量组成。

Keyword Arguments

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]])
优云智算