as_complex

paddle. as_complex ( x, name=None ) [源代码]

将实数 Tensor 转为复数 Tensor。

输入 Tensor 的数据类型是 'float32' 或者 'float64',输出 Tensor 的数据类型相应为 'complex64' 或者 'complex128'。

输入 Tensor 的形状是 (*, 2) (其中 * 表示任意形状),亦即,输入的最后一维的大小必须是 2,这对应着复数的实部和虚部。输出 Tensor 的形状是 (*,)

下图展示了一个 as_complex 简单的使用情形。一个形状为[2, 3, 2]的实数 Tensor 经过 as_complex 转换,最后一个长度为 2 的维度被合并为复数,形状变为[2, 3]。

as_complex 图示

参数

  • x (Tensor) - 输入 Tensor,数据类型为:float32 或 float64。

  • name (str,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

返回

输出 Tensor,数据类型是 'complex64' 或 'complex128',与 x 的数值精度一致。

代码示例

>>> import paddle
>>> x = paddle.arange(12, dtype=paddle.float32).reshape([2, 3, 2])
>>> y = paddle.as_complex(x)
>>> print(y)
Tensor(shape=[2, 3], dtype=complex64, place=Place(cpu), stop_gradient=True,
[[(0.00000000+1.00000000j) , (2.00000000+3.00000000j)  , (4.00000000+5.00000000j)  ],
 [(6.00000000+7.00000000j) , (8.00000000+9.00000000j)  , (10.00000000+11.00000000j)]])