首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow einsum vs. matmul vs. tensordot

tensorflow einsum vs. matmul vs. tensordot
EN

Stack Overflow用户
提问于 2017-03-30 01:51:04
回答 1查看 12.8K关注 0票数 21

在tensorflow中,函数tf.einsumtf.matmultf.tensordot都可以用于相同的任务。(我意识到tf.einsumtf.tensordot有更通用的定义;我也意识到tf.matmul具有批处理功能。)在这三个函数中的任何一个都可以使用的情况下,是否有一个函数往往是最快的?还有其他推荐规则吗?

例如,假设A是秩2张量,b是秩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)

有没有比其他的更可取的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-30 05:32:58

tf.tensordot()tf.einsum()都是封装一个或多个tf.matmul()调用的语法糖(尽管在某些特殊情况下,tf.einsum()可以简化为更简单的基本tf.multiply())。

在限制中,我希望所有三个函数在相同的计算中具有相同的性能。然而,对于较小的矩阵,直接使用tf.matmul()可能更有效,因为它将产生具有更少操作的更简单的TensorFlow图,因此每个操作的调用成本将更低。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43100679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档