Объект 'csc_matrix' не поддерживает назначение элементов - PullRequest
0 голосов
/ 23 февраля 2020

Я использую разреженные матрицы с использованием CuPy. Если я определяю csc_matrix с помощью scipy, я могу назначить матрицу после ее определения. Но я не могу сделать это с CuPy. Ниже мой код:

data = np.ones((3,4))
diags = np.array([-1,0,1])
M= spdiags(data, diags, 4, 4)
M = sp.csc_matrix(M)
print(M[0,0])
M[0,0] = 5
print(M[0,0])

Я получаю 1,0, 5,0 в качестве вывода. Если я пытаюсь сделать то же самое в CuPy, я получаю ошибку.

import cupy as cp
import cupyx as cpx
datac = cp.ones((3,4))
diagsc = cp.array(diags)
Mc = cpx.scipy.sparse.spdiags(datac, diagsc, 4, 4)
Mc = cpx.scipy.sparse.csc_matrix(Mc)

Mc = cpx.scipy.sparse.csc_matrix(Mc)
print(Mc.get()[0,0])
Mc[0,0] = 5
print(Mc[0,0])

Я получаю 1,0 в качестве выхода, а затем ошибка: объект 'csc_matrix' не поддерживает назначение элемента.

Я делаю что-то неправильно?

Кроме того, операция назначения с csc_matrix в SciPy обходится дорого. Но я могу использовать lil_matrix в scipy, что намного быстрее. Есть ли у CuPy редкая опция lil_matirx?

Спасибо.

...