저는 nx m 크기의 희소 행렬 A로 파이썬에서 작업하고 있습니다. scipy에서 csr_matrix 형식을 사용하고 있으며 행렬을 선형 연산자로 래핑하고 있으므로 slinalg 패키지를 사용할 수 있습니다.
A ^ T * A 곱을 계산해야합니다. 그러나 나는 이것을 달성하기 위해 적절한 루틴을 찾을 수 없습니다. 선형 연산자의 matmat 함수를 사용할 수 있지만이를 위해서는 행렬을 조밀 한 형식으로 변환해야합니다.
조밀 한 행렬로 변환하지 않고 파이썬에서 (다른 패키지를 사용하더라도) 두 개의 희소 행렬을 어떻게 곱할 수 있습니까? 내 행렬이 크고 변환으로 인해 메모리 요구 사항으로 인해 충돌이 발생합니다.
SciPy
고밀도 행렬로 변환하지 않고 ' 희소 csr_matrix ' 의 행렬 곱셈을위한 매우 효율적인 내장 방법이 있습니다.
다음을 직접 사용할 수 있습니다.
import scipy
data, row, column = ...
A = scipy.sparse.csr_matrix((data, (row, column)), shape = (...))
matmul = A.T*A
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다