mindspore.ops.kron
- mindspore.ops.kron(input, other)[source]
Computes the Kronecker product \(input ⊗ other\), denoted by ⊗, of input and other.
If input is a \((a_{0}\) input \(a_{1}\) input … input \(a_{n})\) Tensor and other is a \((b_{0}\) input \(b_{1}\) input … input \(b_{n})\) Tensor, the result will be a \((a_{0}*b_{0}\) input \(a_{1}*b_{1}\) input … input \(a_{n}*b_{n})\) Tensor with the following entries:
\[(input ⊗ other)_{k_{0},k_{1},...k_{n}} = input_{i_{0},i_{1},...i_{n}} * other_{j_{0},j_{1},...j_{n}},\]where \(k_{t} = i_{t} * b_{t} + j_{t}\) for 0 ≤ t ≤ n. If one Tensor has fewer dimensions than the other it is unsqueezed until it has the same number of dimensions.
Note
Supports real-valued and complex-valued inputs.
- Parameters
- Returns
Tensor, has the shape \((r0 * s0, r1 * s1, ... , rN * sN)\).
- Raises
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, nn >>> from mindspore import ops >>> input = Tensor(np.array([[0, 1, 2], [3, 4, 5]])).astype(np.float32) >>> other = Tensor(np.array([[-1, -2, -3], [-4, -6, -8]])).astype(np.float32) >>> output = ops.kron(input, other) >>> print(output) [[ 0. 0. 0. -1. -2. -3. -2. -4. -6.] [ 0. 0. 0. -4. -6. -8. -8. -12. -16.] [ -3. -6. -9. -4. -8. -12. -5. -10. -15.] [-12. -18. -24. -16. -24. -32. -20. -30. -40.]]