所有分类
  • 所有分类
  • 未分类

torch.einsum()计算方法详解及手动推导

🆕最新资讯🆕
引言:许多博客已经介绍了torch.einsum()的分析和介绍,但大多数聚焦于爱因斯坦求和约定的法则,对实际案例分析只是走马观花。然而,在实际应用中,我们经常需要计算非常复杂的情况下的torch.einsum()。因此,本文将从实际复杂案例的角度对torch.einsum()的计算过程进行详细分析,逐步推导每个元素的计算关系。爱因斯坦求和约定:torch.einsum()的基础原理是爱因斯坦求和约定,它是一种用于简化计算的记法,可以表示更复杂、更灵活的运算。在爱因斯坦求和约定中,输入矩阵元素的坐标索引表示为$i_1i_2…i_N,j_1j_2…j_M$,输出矩阵元素的坐标索引表示为$i_{k_1}i_{k_2}..j_{l_1}j_{l_1}$。爱因斯坦求和约定的本质是沿着求和索引的方向计算两个输入逐元素乘累加和的结果,并将结果放到输出自由索引的位置上。复杂案例推导:本文以一个复杂的案例为例进行推导,该案例涉及四维张量和三维张量的乘积。通过推导,我们可以得出结论:对于BATCH内的每个元素(A’三维,B’二维),对B在第一维度进行广播(A”三维,B”三维),最后沿着第二维和第三维计算矩阵相乘B”’A”’(A”’二维,B”’二维)。整个推导过程可以总结为以下几个要点:1.沿着维数较高的输入的第一维开始,判断是否存在于B中,如果存在,则进行逐元素操作;2.如果该维度不在B中,则进行广播操作;3.判断当前最简表达式的意义。
来源:https://juejin.cn/ai

原文链接:https://aixinjiyuan.com/837.html,转载请注明出处~~~
0
广告位招租

评论0

请先
暂时无公告
显示验证码
没有账号?注册  忘记密码?