2017-06-14 94 views
2

說我有一個形狀(3,5,3)張量,像這樣:我該怎麼做矩陣乘法的最後2個維度張量

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)

的藉此矩陣的第一個元素是由矩陣multiplicat給出如何會做的矩陣乘法的

[[ 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)。有任何想法嗎?

回答

2

我傻讀書tf.matmul文檔後,好像因爲內部尺寸符合我可以做tf.matmul(x,y),它給了我答案