我有一个COO矩阵:
from scipy.sparse import coo_matrix coo = coo_matrix((3, 4), dtype = "int8")
我想转换成pytorch稀疏张量。根据文件 https://pytorch.org/docs/master/sparse.html 它应该遵循coo格式,但我找不到简单的转换方法。任何帮助都将不胜感激!
使用数据,如 Pytorch docs ,可以简单地使用numpy的属性 coo_matrix :
coo_matrix
import torch import numpy as np from scipy.sparse import coo_matrix coo = coo_matrix(([3,4,5], ([0,1,1], [2,0,2])), shape=(2,3)) values = coo.data indices = np.vstack((coo.row, coo.col)) i = torch.LongTensor(indices) v = torch.FloatTensor(values) shape = coo.shape torch.sparse.FloatTensor(i, v, torch.Size(shape)).to_dense()
产量
0 0 3 4 0 5 [torch.FloatTensor of size 2x3]