在 TensorFlow 中计算 Kronecker 乘积的最有效方法是什么?

jas*_*ekp 5 python operation tensorflow

我有兴趣在 TensorFlow 中的 Kronecker 循环单元上实现这篇论文

这涉及到 Kronecker 积的计算。TensorFlow 没有针对 Kronecker 产品的操作。我正在寻找一种有效且稳健的方法来计算它。

这是否存在,还是我需要手动定义一个 TensorFlow 操作?

and*_*ino 2

kronecker_productTensorFlow 1.7+ 提供以下功能tf.contrib.kfac.utils.kronecker_product

a = tf.eye(3)
b = tf.constant([[1., 2.], [3., 4.]])
kron = tf.contrib.kfac.utils.kronecker_product(a, b)

tf.Session().run(kron)
Run Code Online (Sandbox Code Playgroud)

输出:

array([[1., 2., 0., 0., 0., 0.],
       [3., 4., 0., 0., 0., 0.],
       [0., 0., 1., 2., 0., 0.],
       [0., 0., 3., 4., 0., 0.],
       [0., 0., 0., 0., 1., 2.],
       [0., 0., 0., 0., 3., 4.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

  • 这个功能在 Tensorflow 1.11 中似乎不再可用。 (2认同)