说我有一个形状(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)
。有什么想法吗?
答案 0 :(得分:2)
在阅读tf.matmul
文档之后看起来很傻,因为内部尺寸匹配我可以做tf.matmul(x,y)
并且它给了我答案