vs用eigen3计算矩阵乘法_深度学习矩阵乘法的终极奥义einsum,结合多个计算框架上的使用...

本文深入探讨深度学习中的矩阵乘法,重点关注einsum函数,结合TensorFlow2.3、PyTorch1.7.0和Numpy1.19,解释einsum如何使用爱因斯坦求和约定进行高效计算,并展示einsum在不同场景的应用。
摘要由CSDN通过智能技术生成

81952ab3129d18f1ba64271ef4f2cbc3.png
说明:讲解时会对相关文章资料进行思想、结构、优缺点,内容进行提炼和记录,相关引用会标明出处,引用之处如有侵权,烦请告知删除。
转载请注明:DengBoCong

这里我们来好好探讨一下深度学习中,矩阵乘法的使用,其实主要是围绕einsum来进行探讨,即通过爱因斯坦求和约定来指导矩阵乘法,同时附带陈列其他矩阵乘法的API,方便进行直观感受。本文中的计算框架及版本如下:

  • TensorFlow2.3
  • PyTorch1.7.0
  • Numpy1.19

爱因斯坦求和约定

我们讨论einsum绕不开爱因斯坦求和约定的,爱因斯坦求和约定(Einstein summation convention)是一种标记的约定,又称为爱因斯坦标记法(Einstein notation),在处理关于坐标的方程式时非常有用,用一句话来总结爱因斯坦求和约定,就是:

当式子中任何一个角标出现了两次,并且一次是上标、一次是下标时,那么该式表示的实际上是对这个角标一切可能值的求和。换言之,如果角标
equation?tex=i 作为上标和下标各出现了一次,那么式子相当于添加了一个关于
equation?tex=i 的求和符号

我们下面使用线性函数和矩阵运算来对爱因斯坦求和约定进行举例说明:

  • 线性函数:从张量中我们知道,一个1-线性函数可以表示为一个向量,这样的向量常被称为余向量、补向量或者1-形式。通常,我们用下标来表示一个余向量的各分量:
    equation?tex=a%3D%28a_1%2Ca_2%2Ca_3%29 ,而用上标来表示一个通常的几何向量:
    equation?tex=v%3D%28v%5E1%2Cv%5E2%2Cv%5E3%29 。注意,上标不是乘方,则
    equation?tex=a
    equation?tex=v 的内积是:

equation?tex=%5Csum_%7Bi%3D1%2C2%2C3%7D%5E%7B%7Da_iv%5Ei

用爱因斯坦求和约定,

equation?tex=a
equation?tex=v 的内积就可以写为
equation?tex=a_iv%5Ei
  • 矩阵运算:对于矩阵
    equation?tex=A ,我们把其第
    equation?tex=i 行第
    equation?tex=j 列的元素表示为
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值