einsum计算

einsum的计算是由输出的字符串决定的,下面举例:

1. 矩阵乘法

import numpy as np

A = np.random.rand(2, 3)
B = np.random.rand(3, 4)
C = np.einsum('ij,jk->ik', A, B)

在这个例子中,'ij,jk->ik' 表示 A 的第一个维度 i 与 B 的第二个维度 k 保持不变,而 j 是要被求和的维度。因此,这个操作实际上是矩阵乘法。

转置

A = np.random.rand(2, 3)
B = np.einsum('ij->ji', A)

A = np.random.rand(2, 3) B = np.einsum('ij->ji', A)

这里 'ij->ji' 表示将矩阵 A 的第一个维度 i 和第二个维度 j 交换,从而实现矩阵转置。

内积

A = np.random.rand(3)
B = np.random.rand(3)
dot_product = np.einsum('i,i->', A, B)

A = np.random.rand(3) B = np.random.rand(3) dot_product = np.einsum('i,i->', A, B)

这里 'i,i->' 表示将两个一维向量的对应元素相乘并求和,即内积。

外积

A = np.random.rand(3)
B = np.random.rand(4)
outer_product = np.einsum('i,j->ij', A, B)

A = np.random.rand(3) B = np.random.rand(4) outer_product = np.einsum('i,j->ij', A, B)

这里 'i,j->ij' 表示计算两个向量的外积,生成一个 3x4 的矩阵。

迹(trace)

A = np.random.rand(3, 3)
trace = np.einsum('ii->', A)

A = np.random.rand(3, 3) trace = np.einsum('ii->', A)

这里 'ii->' 表示计算矩阵 A 的对角元素之和,即迹。

通过 einsum,你可以简洁而高效地表达复杂的张量运算,这在科学计算和机器学习中尤为有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值