在tensorflow中,函数tf.einsum,tf.matmul和tf.tensordot都可以用于相同的任务.(我意识到tf.einsum并且tf.tensordot有更多的一般定义;我也意识到它tf.matmul具有批处理功能.)在可以使用三者中的任何一种的情况下,一个函数是否最快?还有其他推荐规则吗?
例如,假设这A是一个rank-2张量,并且b是rank-1张量,并且您想要计算产品c_j = A_ij b_j.在三个选项中:
c = tf.einsum('ij,j->i', A, b)
c = tf.matmul(A, tf.expand_dims(b,1))
c = tf.tensordot(A, b, 1)
是否通常比其他人更好?