假设我有两个张量在tensorflow中,第一维表示批量训练样本的索引,其他维度表示某些数据向量或矩阵。例如:
vector_batch = tf.ones([64, 50])
matrix_batch = tf.ones([64, 50, 50])
我很好奇如何以最通俗易懂的方式进行向量*矩阵乘法,对于那些在第一维度上共享索引的向量和矩阵对,每对都要执行乘法。也就是说,最通俗易懂的写法是什么:
result = tf.empty([64,50])
for i in range(64):
result[i,:] = tf.matmul(vector_batch[i,:], matrix_batch[i,:,:])
如何最好地组织输入向量的形状,使得这个过程尽可能简单/清晰?
tf.batch_matmul
函数,相应的等价代码是使用普通的矩阵乘法函数matmul
。 - Mr_and_Mrs_D