tensorflow中带张量乘法向量的matmul函数

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((

一般来说,当我们将一个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((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)