[torch]t.sparse.mm&t.spmm的使用与区别

代码:


a = torch.randn(2, 3)
a1 =a.to_sparse().requires_grad_(True)
a2 = torch.randn(5,2,3).to_sparse()
a3 = a.to_sparse().requires_grad_(False)
b = torch.randn(3, 2)
b1 =b.to_sparse().requires_grad_(True)
b2 = torch.randn(5,3,32).to_sparse()
b3 = b.to_sparse().requires_grad_(False)

y1 = torch.sparse.mm(a,b)   # 两个dense矩阵
y2 = torch.sparse.mm(a1,b1) # 两个sparse矩阵
y3 = torch.sparse.mm(a1, b) #sparse,dense
#y4 = torch.sparse.mm(a, b1) # dense, sparse --不成立

# z0 = torch.spmm(a1, b) #sparse-有梯度.dense --不成立
z1 = torch.spmm(a3, b) #sparse-无梯度,dense  ok
z2 = torch.spmm(a, b)  #dense,dense ok
z3 =torch.spmm(a1, b1) #sparse-有梯度,sparse-有梯度        ---不成立
#z4 =torch.spmm(a, b1)  #dense,sparse-有梯度  ---不成立
#z5 = torch.spmm(a, b3) # dense,sparse -无梯度  ----不成立

结论:
torch.sparse.mm

  • dense × \times × dense
  • sparse t i m e s times times sparse
  • sparse t i m e s times times dense

torch.spmm

  • dense t i m e s times times dense
  • sparse t i m e s times times dense
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值