tf.tensordot运算矩阵矩阵示例

1.例子
import tensorflow as tf
a = tf.constant([0,1,2,1,3,4,5,2,3,4,5,0],shape=[2,1,3,2])
b =tf.constant([1,3,2,3,1,2],shape=[2,3,1])
res = tf.tensordot(a,b,axes=1)
with tf.Session() as sess:
print(“a的shape:”,a.shape)
print(“b的shape:”,b.shape)
print(“a的值:”,sess.run(a))
print(“b的值:”,sess.run(b))
print(“res_shape:”,res.shape)
print(“res_value:”,sess.run(res))

a的shape: (2, 1, 3, 2)
b的shape: (2, 3, 1)
a的值: [[[[0 1]
[2 1]
[3 4]]]
[[[5 2]
[3 4]
[5 0]]]]
b的值: [[[1]
[3]
[2]]
[[3]
[1]
[2]]]
res_shape: (2, 1, 3, 3, 1)
res_value: [[[[[ 3]
[ 1]
[ 2]]
[[ 5]
[ 7]
[ 6]]
[[15]
[13]
[14]]]]
[[[[11]
[17]
[14]]
[[15]
[13]
[14]]
[[ 5]
[15]
[10]]]]]

a的张量如图
tf.tensordot运算矩阵矩阵示例_第1张图片

b的张量如图
tf.tensordot运算矩阵矩阵示例_第2张图片

a的最后一维矩阵两个:
tf.tensordot运算矩阵矩阵示例_第3张图片

b的第一维矩阵转置
在这里插入图片描述

a的最后一维两个矩阵与b的第一维矩阵相乘
tf.tensordot运算矩阵矩阵示例_第4张图片

所得结果转置后即计算结果
[[[[[ 3]
[ 1]
[ 2]]
[[ 5]
[ 7]
[ 6]]
[[15]
[13]
[14]]]]
[[[[11]
[17]
[14]]
[[15]
[13]
[14]]
[[ 5]
[15]
[10]]]]]

仅供参考,不清楚具体官方如何算出来的,欢迎提供不同算法

你可能感兴趣的:(自然语言处理,tensorflow,神经网络)