首页 文章

如何对张量的最后2维进行矩阵乘法[重复]

提问于
浏览
2

这个问题在这里已有答案:

说我有一个形状(3,5,3)张量像这样:

x = [[[ 4.,  6.,  6.],
    [ 0.,  0.,  3.],
    [ 6.,  6.,  5.],
    [ 4.,  1.,  8.],
    [ 3.,  6.,  7.]],

   [[ 4.,  0.,  5.],
    [ 4.,  7.,  2.],
    [ 4.,  5.,  3.],
    [ 4.,  2.,  1.],
    [ 3.,  4.,  4.]],

   [[ 0.,  3.,  4.],
    [ 6.,  7.,  5.],
    [ 1.,  2.,  2.],
    [ 3.,  8.,  3.],
    [ 8.,  5.,  7.]]]

形状 (3, 3, 4) 张量如下:

y = [[[ 3.,  2.,  5.,  4.],
    [ 8.,  7.,  1.,  8.],
    [ 4.,  0.,  5.,  3.]],

   [[ 8.,  7.,  7.,  3.],
    [ 5.,  4.,  0.,  1.],
    [ 6.,  5.,  4.,  4.]],

   [[ 7.,  0.,  1.,  2.],
    [ 7.,  5.,  0.,  6.],
    [ 7.,  5.,  4.,  1.]]]

如何进行矩阵乘法,以便得到的矩阵具有形状 (3, 5, 4)

由此矩阵的第一个元素由矩阵乘法给出

[[ 4.,  6.,  6.],
[ 0.,  0.,  3.],
[ 6.,  6.,  5.],
[ 4.,  1.,  8.],
[ 3.,  6.,  7.]]

[[ 3.,  2.,  5.,  4.] 
 [ 8.,  7.,  1.,  8.]
 [ 4.,  0.,  5.,  3.]]

我尝试过使用 tf.tensordot

z = tf.tensorflow(x, y, axes = [[2],[1]])

我相信 x 的第3轴与 y 的第2轴相乘,但它给我一个形状张量 (3, 5, 3, 4) . 有任何想法吗?

1 回答

  • 2

    看完 tf.matmul docs之后傻傻的我似乎因为内部尺寸匹配我可以做 tf.matmul(x,y) 它给了我答案

相关问题