首页
学习
活动
专区
圈层
工具
发布

NumPy中einsum的基本介绍

关于Stack Overflow这样的网站上有很多关于einsum是什么,以及它如何工作的问题,所以这篇文章希望对这个函数的进行基本介绍,并且让你了解开始使用它时需要知道的内容。...对于两个二维数组A和B,矩阵乘法操作可以用np.einsum(‘ij,jk->ik’, A, B)完成。 这个字符串是什么意思?想象’ij,jk->ik’在箭头->处分成两部分。...下图显示了如果我们不对j轴进行求和,而是通过写np.einsum(‘ij,jk->ijk’, A, B)将其包含在输出中,我们会得到什么。右边代表j轴已经求和: ?...注意,由于np.einsum(‘ij,jk->ik’, A, B)函数不构造3维数组然后求和,它只是将总和累加到2维数组中。 一些简单的操作 这就是我们开始使用einsum时需要知道的全部内容。...文档重点强调了np.einsum(‘ji’, M)是一种转换2维数组的方法。

13K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    高效处理多维数组:einsum()函数从入门到精通

    在NumPy中(后文将讨论其他框架如PyTorch、TensorFlow等),np.einsum()函数允许直接应用这种表示法进行数组操作。...关于索引的技术说明:j是求和索引(也称为哑索引)。它可以是任何字母,不会改变表达式的实际含义,故称为"哑"索引。它在多个张量中出现,但不出现在结果中。...以下示例说明这一点: a=np.empty((10,20)) # 因为索引顺序为ba,形状从(10,20)变为(20,10) np.einsum("ba",a).shape #...np.einsum("bc,ca",a,b).shape # (30, 10) 除混淆风险外,隐式语法在功能上也存在局限。...总结 恭喜您完成了这篇关于einsum()的全面指南! 我们从基本语法入手,逐步探讨了高级应用,如线性Transformer的实现。我们还讨论了使用einsum()时的注意事项及其解决方案。

    61910

    高效处理多维数组:einsum()函数从入门到精通

    在NumPy中(后文将讨论其他框架如PyTorch、TensorFlow等),np.einsum()AI写代码1函数允许直接应用这种表示法进行数组操作。...关于索引的技术说明:j是求和索引(也称为哑索引)。它可以是任何字母,不会改变表达式的实际含义,故称为"哑"索引。它在多个张量中出现,但不出现在结果中。...如果我们想将相同的函数应用于单头注意力或单个批次,可以使用省略号运算符: S=np.einsum("...di,...dj->...ij", Q, K)AI写代码1这种表示方式不关心头和批次的具体数量,...np.einsum("bc,ca",a,b).shape # (30, 10)AI写代码123456789除混淆风险外,隐式语法在功能上也存在局限。...总结恭喜您完成了这篇关于einsum()AI写代码1的全面指南! 我们从基本语法入手,逐步探讨了高级应用,如线性Transformer的实现。

    72020
    领券