【问题标题】:Pytorch: Sparse Matrix multiplcationPytorch:稀疏矩阵乘法
【发布时间】:2018-08-30 18:29:53
【问题描述】:

给定:

self.A = torch.autograd.Variable(random_sparse(n = dim)) 
self.w = torch.autograd.Variable(torch.Tensor(np.random.normal(0,1,(dim,dim))))

目标1:

torch.mm(self.A, self.w)

目标2:

torch.spmm(self.A, self.w)

结果1:

TypeError: Type torch.sparse.FloatTensor doesn't implement stateless method addmm

结果2:

AttributeError: 'module' object has no attribute 'spmm'

我的 PyTorch 版本是 0.1.12_2 - 非常感谢可能的解决方案。

【问题讨论】:

  • 嗨,你能否澄清一下(即邮政编码/缩写代码)什么 random_sparse 可以让我重现错误?谢谢!
  • @mexmex - random_sparse 只是创建一个带有随机条目的稀疏矩阵..可以是任何稀疏矩阵:)。
  • 我明白了。抱歉,我无法在这方面取得太大进展。我注意到如果 A 和 w 是张量,但不是 Variables(),它会起作用,这会导致您的第一个错误。我认为稀疏的兼容性仍然非常有限,因为 API 仍然是实验性的。但恐怕这并不能解决你的问题。

标签: python sparse-matrix pytorch


【解决方案1】:

spmm 已从 torch 模块移至 torch.sparse 模块。有关官方文档,请查看此linktorch.sparse模块的文档开头也有警告:

此 API 目前处于试验阶段,可能会在不久的将来发生变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2013-06-09
    • 2018-07-27
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多