einsum算子不支持问题处理

当torch.einsum算子在onnx转om找不到时,如何进行代码替换。
torch.einsum里面为
bhwc, hkc->bhwk
计算方式为bhwc乘以hkc得到bhwk

b h w c
  h k c
b h w k
   ||
   \/
b h w c
  h c k(交换c和k的位置,bhwc*ck=bhwk)
b h w k

举例:

M = torch.randn(100, 30, 40, 60)
N = torch.randn(30, 40, 60)
torch_transform_result = torch.einsum("bhwc,hkc->bhwk", M, N)

## 可以替换为torch.matmul
N_t = torch.transpose(N, 1, 2)
result = torch.matmul(M, N_t) ## 此结果和torch_transform_result是一样的。

参考:

https://blog.youkuaiyun.com/bj_zhb/article/details/136869289
https://pytorch.org/docs/stable/generated/torch.matmul.html#torch.matmul

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值