gpt4 book ai didi

python - 在 TensorFlow 中计算克罗内克积的最有效方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 02:08:17 29 4
gpt4 key购买 nike

我有兴趣实现 this paper关于 TensorFlow 中的 Kronecker 循环单元。

这涉及克罗内克积的计算。 TensorFlow 没有针对 Kronecker Products 的操作。我正在寻找一种高效且稳健的方法来计算它。

这是否存在,或者我是否需要手动定义 TensorFlow 操作?

最佳答案

如果你会阅读 conv2d_transpose 的数学定义看看是什么Kronecker product计算后,您会发现使用适当大小的 conv2d_tranpose(第二个矩阵的宽度、高度)步幅,它会做同样的事情。

此外,您甚至可以使用 conv2d_transpose 开箱即用地批处理 Kronecker 的产品。


这是您计算 wiki 矩阵的 Kronecker 乘积的示例。

import tensorflow as tf
a = [[1, 2], [3, 4]]
b = [[0, 5], [6, 7]]

i, k, s = len(a), len(b), len(b)
o = s * (i - 1) + k

a_tf = tf.reshape(tf.constant(a, dtype=tf.float32), [1, i, i, 1])
b_tf = tf.reshape(tf.constant(b, dtype=tf.float32), [k, k, 1, 1])

res = tf.squeeze(tf.nn.conv2d_transpose(a_tf, b_tf, (1, o, o, 1), [1, s, s, 1], "VALID"))

with tf.Session() as sess:
print sess.run(res)

请注意,在非方矩阵的情况下,您将需要在行中计算更多维度:

i, k, s = len(a), len(b), len(b)
o = s * (i - 1) + k

并正确使用它们作为您的步幅/输出参数。

关于python - 在 TensorFlow 中计算克罗内克积的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309333/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com