首页 > 其他分享 >爱因斯坦求和约定einsum简单例题解读

爱因斯坦求和约定einsum简单例题解读

时间:2024-08-12 11:05:34浏览次数:14  
标签:求和 einsum 索引 ij np array 例题

概论

在爱因斯坦求和约定或 einsum() 格式字符串中,所有的索引都可以分为两类:自由索引集和求和索引集。它们的区别很简单:

  • 自由索引是用于输出规范中的索引。它们与外层 for 循环相关联。
  • 求和索引是所有其他索引:它们出现在参数规范中,但不出现在输出规范中。之所以称为求和索引,是因为在计算输出张量时,这些索引的维度被求和掉了。它们与内层 for 循环相关联。

根据这种划分,每类索引的角色就很明确了:自由索引用于遍历每个输出元素,而求和索引用于计算和求和所需的乘积项。

具体例子

import numpy as np
# 定义一个 2 × 2 矩阵
a = np.array([[2, 3],[4, 5]])

# ii 代表对角线向量(2, 5)
# ii,ij 代表 (2, 5) * ((2,3),(4,5))
# ij 是求和轴,ij都保留
np.einsum('ii,ij->ij', a, a)
输出:array([[ 4,  6],
       [20, 25]])

# 求和轴只有i,说明是沿着j轴求和
# 4+6=10,20+25=45,即(10,45)
np.einsum('ii,ij->i', a, a)
输出:array([10, 45])

#求和轴只有j,说明沿着i轴求和
#4+20, 6+25
np.einsum('ii,ij->j', a, a)
输出:array([24, 31])

#箭头右侧ij表示全部保留,只能原位计算了
np.einsum('ij,ij->ij', a, a)
输出:array([[ 4,  9],
       [16, 25]])

标签:求和,einsum,索引,ij,np,array,例题
From: https://www.cnblogs.com/litifeng/p/18354545

相关文章

  • 举例说明二次型和用 einsum 计算
    什么是“二次型”在数学中,特别是线性代数中,二次型(quadraticform)是一个涉及向量和矩阵的表达式,其形式为:[Q(v)=v^TMv]其中:(v)是一个向量(长度为(n))。(M)是一个(n\timesn)的方阵(矩阵)。(v^T)表示向量(v)的转置(即一个列向量变为行向量)。这个表达......
  • 线性整数规划的三道经典例题
    目录一、背包问题1.模型建立2.代码实现二、指派问题1.模型建立2.代码实现(1)输入目标函数系数(2)输入不等式约束(3)输入等式约束(4)调用函数求解三、钢管切割问题1.问题分析2.模型建立(1)利用枚举法找到料头小于等于0.9的切割方法(2)得到目标函数与约束3.代码实现(1)枚举法找出同一个原材料上所......
  • ArrayList集合及例题 day12
    packagecom.shujia.day13;importjava.util.ArrayList;importjava.util.Iterator;/*Collection:-List(有序【指的是存储和取出的顺序是一致的】且可以发生重复,且有索引的概念)-ArrayList:底层数据结构是数组,查询快,增删慢,线程不安......
  • 线性规划在数学建模中的两道例题
    目录一、生产决策问题1.问题分析2.模型建立(1)符号设定(2)目标函数建立(3)约束建立3.代码求解(1)输入系数向量(2)输入不等式约束(3)输入等式约束与上下界(4)进行求解二、投料问题1.问题分析2.模型建立(1)符号设定(2)目标函数建立(3)约束建立3.代码求解(1)输入系数向量(2)输入不等式约束(3)输入等式约束与上下......
  • jdk8之stream求和,保留两位小数
    统计接口,最下面加总计一行时publicList<GateBaseBResultStatis>gateBaseBResultStatisTotal(List<GateBaseBResultStatis>list){GateBaseBResultStatismodel=newGateBaseBResultStatis();model.setAddvcd("总计");model.setTo......
  • phar反序列化例题二
    phar反序列化例题二[SWPUCTF2018]SimplePHP1文件下载url处发现文件可下载,此处不贴出来了,不占太多篇幅代码审计class.php处提示phar反序列化,base.php提示flag在f1ag.php然后开始捋关系index.phpindex.php包含了base.php(写有文件上传、查看的页面)。base.phpbase.php可......
  • 【总结】注册码泄露原理以及例题
    引言题目给了小明的机器码:1653643685031597用户user_id:xiaoming可以看到题目采用了SIMD指令集该指令格式在CTF和攻防对抗中经常出现,可以提高执行效率的同时也可以增加逆向的难度。对于此类指令和题目,我们分析的方法是:遇到查意思,查的多了就跟看正常代码一样,采用动态分析。机......
  • torch.einsum 的计算过程
    概论a=torch.randn(3,2,2)b=torch.randn(3)c=torch.einsum('...chw,c->...hw',a,b)上面的einsum如何计算的?简单说,把b广播为a的形状,然后做矩阵乘法,即逐位相乘运算,注意,不是点积,是逐位的相乘运算。注:这里符合背景需求,背景是,a是深度学习的某个张量,b是a的权重,......
  • einsum 函数
    einsum是Einsteinsummation的缩写,即爱因斯坦求和约定。einsum函数源自NumPy,后来在PyTorch等其他科学计算库中也得到了实现。它是一种强大而灵活的函数,可以用来处理各种张量运算,如矩阵乘法、转置、批量点积、内积、外积等。爱因斯坦求和约定(EinsteinSummationConvent......
  • laravel: 用中间件把请求和响应log下来
    一,代码:1,中间件<?phpnamespaceApp\Http\Middleware;useClosure;useIlluminate\Http\Request;useSymfony\Component\HttpFoundation\Response;useApp\extend\LogEs;classLogSearch{/***Handleanincomingrequest.**@par......