首页 > 解决方案 > 将矩阵的每一行与张量流中的另一个矩阵相乘

问题描述

我想使用 tensorflow 将矩阵的每一行与另一个矩阵相乘。例如:

A = [1,2,3 ; 4,5,6]

B = [1,1,1 ; 2,2,2 ; 3,3,3]

将 A 的每一行乘以整个矩阵 B,然后得到的张量应该是

C = [[1,2,3 ; 2,4,6 ; 3,6,9],
     [4,8,12 ; 5,10,15 ; 6,12,18]]

先感谢您。

标签: tensorflowmatrixmatrix-multiplication

解决方案


阵列广播是你想要的:

A2 = tf.reshape(A, (2, 3, 1))
B2 = tf.reshape(tf.transpose(B), (1, 3, 3))
C = A2 * B2

任何长度为 1 的维度都会自动广播到适当的长度以进行元素乘法,因此C会有 shape (2, 3, 3)

我不是 100% 确定如何解释你的符号,所以我可能把轴顺序弄混了,在这种情况下,玩弄顺序和/或删除转置。


推荐阅读