cartesian_prod

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

对指定的 tensor 序列进行笛卡尔积操作。该行为类似于 python 标准库中的 itertools.product 方法。 相当于将所有的输入 tensors 转换为列表后,对其使用 itertools.product 方法,最终将返回的列表转换为 tensor。

参数

  • x (list[Tensor]|tuple[Tensor]) – 任意数量的 1-D Tensor 序列,支持的数据类型:bfloat16、float16、float32、float64、int32、int64、complex64、complex128。

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

返回

笛卡尔积运算后的 Tensor,数据类型与输入 Tensor 相同。

代码示例

>>> import paddle
>>> a = paddle.to_tensor([1, 2, 3], dtype='int32')
>>> b = paddle.to_tensor([5, 6], dtype='int32')
>>> res = paddle.cartesian_prod([a, b])
>>> print(res)
Tensor(shape=[6, 2], dtype=int32, place=Place(cpu), stop_gradient=True,
[[1, 5],
 [1, 6],
 [2, 5],
 [2, 6],
 [3, 5],
 [3, 6]])

>>> c = paddle.to_tensor([7, 8, 9], dtype='float32')
>>> res = paddle.cartesian_prod([c])
>>> print(res)
Tensor(shape=[3], dtype=float32, place=Place(cpu), stop_gradient=True,
[7., 8., 9.])

>>> d = paddle.empty([0], dtype='float64')
>>> e = paddle.to_tensor([1, 2], dtype='float64')
>>> f = paddle.to_tensor([3, 4, 5, 6, 7], dtype='float64')
>>> res = paddle.cartesian_prod([d, e, f])
>>> print(res)
Tensor(shape=[0, 3], dtype=float64, place=Place(cpu), stop_gradient=True,
[])