从大小 (1000,9) 和 (1000,10) 矩阵到大小为 (1000,90) 的矩阵



>我有两个矩阵: - A (1000,9( - B (1000,10(

现在 A[0,0] 应该乘以 B[0,0], B[0,1], ...B[0,9]

A[0,1] 应乘以 B[0,0], B[0,1], ...B[0,9]

A[1,0] 应乘以 B[1,0], B[1,1], ...B[1,9]

使得生成的矩阵具有大小 (1000,90(

这在只有矩阵运算而没有循环的 Tensorflow 中可能吗? 根据一些广播规则,我认为这应该是可能的,但我还没有答案。

tf.tile可以是一个解决方案,将两个张量平铺成(1000,90(形状,然后进行元素乘法。但也许有更好的解决方案

C = A[:, tf.newaxis, :] * B[:, :, tf.newaxis]

这给了我们一个 [1000, 10, 9] 张量,其中元素 [i, j, k] 是 A[i, k] * B[i, j]。然后我们重塑

C = tf.reshape(C, [tf.shape(A)[0], -1])

至 [1000, 90]。如果我没记错的话,C 的每一行 i 首先将 B[i, 0] 乘以 A[i] 中的所有元素,然后 B[i, 1] 乘以 A[i] 的所有元素等(您可能需要仔细检查这一点(。如果你想要相反的方式,你可以在第一部分中交换tf.newaxis

相关内容

  • 没有找到相关文章

最新更新