kron

paddle. kron ( x, y, out=None, name=None ) [源代码]

Kronecker Product 算子。

该 OP 计算两个张量的克罗内克积,结果是一个合成的张量,由第二个张量经过第一个张量中的元素缩放 后的组块构成。

这个 OP 预设两个张量

kron - 图1

X 和

kron - 图2

Y 的秩 (rank) 相同,如有必要,将会在秩较小的张量的形状前面补 上 1。令 XX 的形状是 [r0r0, r1r1, …, rNrN],YY 的形状是 [s0s0, s1s1, …, sNsN],那么输出张量的形状是 [r0s0r0s0, r1s1r1s1, …, rNsNrNsN]. 其中的元素是 XX 和 YY 中的元素 的乘积。

公式为

output[k0,k1,…,kN]=X[i0,i1,…,iN]∗Y[j0,j1,…,jN]output[k0,k1,…,kN]=X[i0,i1,…,iN]∗Y[j0,j1,…,jN]

其中

kt=it∗st+jt,t=0,1,…,Nkt=it∗st+jt,t=0,1,…,N

参数:

  • x (Tensor) – Kron OP 的第一个输入。多维 Tensor,数据类型为 float16, float32, float64, int32 或 int64。

  • y (Tensor) – Kron OP 的第二个输入。多维 Tensor,数据类型为 float16, float32, float64, int32 或 int64,与 x 相同。

  • out (Tensor, 可选) - 指定算子输出结果的 Tensor,可以是程序中已经创建的任何 Tensor。默认值为 None,此时将创建新的 Tensor 来保存输出结果。

  • name (str,可选) – 该参数供开发人员打印调试信息时使用,具体用法请参见 Name ,默认值为 None。

返回:

  • Kron OP 的输出。多维 Tensor,数据类型为 float16, float32, float64, int32 或 int64,与 x 一致。

代码示例

  1. import paddle
  2. import numpy as np
  3. x = paddle.to_tensor([[1, 2], [3, 4]], dtype='int64')
  4. y = paddle.to_tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype='int64')
  5. out = paddle.kron(x, y)