tensorflow中带张量乘法向量的matmul函数
一般来说,当我们将一个1*n的向量v与一个m*n*k的张量T相乘时,我们期望得到一个m*k/m*1*k的矩阵/张量。这意味着我们的张量有m个维数为n*k的矩阵切片,v乘以每个矩阵,得到的向量叠加在一起。为了在tensorflow中进行乘法,我提出了以下公式。我只是想知道是否有任何内置函数可以直接实现这个标准乘法tensorflow中带张量乘法向量的matmul函数,tensorflow,tensor,vector-multiplication,Tensorflow,Tensor,Vector Multiplication,一般来说,当我们将一个1*n的向量v与一个m*n*k的张量T相乘时,我们期望得到一个m*k/m*1*k的矩阵/张量。这意味着我们的张量有m个维数为n*k的矩阵切片,v乘以每个矩阵,得到的向量叠加在一起。为了在tensorflow中进行乘法,我提出了以下公式。我只是想知道是否有任何内置函数可以直接实现这个标准乘法 T = tf.Variable(tf.random_normal((m,n,k)), name="tensor") v = tf.Variable(tf.random_normal((
T = tf.Variable(tf.random_normal((m,n,k)), name="tensor")
v = tf.Variable(tf.random_normal((1,n)), name="vector")
c = tf.stack([v,v]) # m times, here set m=2
output = tf.matmul(c,T)
您可以通过以下方式完成:
tf.reduce_sum(tf.expand_dims(v,2)*T,1)
代码:
不确定是否有更好的方法,但听起来你可以像这样使用tf.map\fn:
output = tf.map_fn(lambda x: tf.matmul(v, x), T)
output = tf.map_fn(lambda x: tf.matmul(v, x), T)