cartesian_prod¶
- paddle. cartesian_prod ( x: Sequence[Tensor], name: str | None = None ) Tensor [source]
-
Perform Cartesian product on a given tensor sequence. This behavior is similar to the itertools.product in Python. Equivalent to converting all input tensors into lists, performing itertools.product on these lists, and finally converting the resulting list into tensors.
- Parameters
-
x (list[Tensor]|tuple[Tensor]) – Any number of 1-D input Tensors. Supported data types: bfloat16, float16, float32, float64, int32, int64, complex64 or complex128.
name (str|None, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.
- Returns
-
out (Tensor), cartesian product of input tensors with the same data type.
Examples
>>> 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, [])