mindspore.ops.kron

mindspore.ops.kron(input, other)[源代码]

计算 inputother 的Kronecker积:inputother 。 如果 input 是Tensor (a0 input a1 input … input an)other 是Tensor (b0 input b1 input … input bn) ,计算结果为Tensor (a0b0 input a1b1 input … input anbn) ,计算公式如下:

(inputy)k0,k1,...kn=inputi0,i1,...inotherj0,j1,...jn,

其中,对于所有的 0 ≤ tn,都有 kt=itbt+jt 。如果其中一个Tensor维度小于另外一个, 则对维度较小的Tensor进行unsqueeze补维操作,直到两个Tensor维度相同为止。

说明

支持实数和复数类型的输入。

参数:
  • input (Tensor) - 输入Tensor,shape为 (r0,r1,...,rN)

  • other (Tensor) - 输入Tensor,shape为 (s0,s1,...,sN)

返回:

Tensor,shape为 (r0s0,r1s1,...,rNsN)

异常:
  • TypeError - input 不是Tensor。

  • TypeError - other 不是Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> 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.]]