Python >> Tutoriel Python >  >> Python Tag >> SciPy

Conversion d'un coo_matrix scipy en tenseur clairsemé pytorch

En utilisant les données comme dans les docs Pytorch, cela peut être fait simplement en utilisant les attributs du Numpy 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()

Sortie

0 0 3
4 0 5
[torch.FloatTensor of size 2x3]