python 使用稀疏矩阵与jax

dba5bblo  于 2023-04-10  发布在  Python
关注(0)|答案(2)|浏览(205)

我试图优化一个大量使用稀疏矩阵操作的代码,并尝试使用jax如下

import jax.scipy as jsp
from jax.scipy import sparse

然而,当试图转换时,从另一个矩阵创建稀疏矩阵,如下所示

sHamil_ONE= sparse.csr_matrix(Hamil_multi_pol)

我收到这条信息

AttributeError: module 'jax.scipy.sparse' has no attribute 'csr_matrix'

那我该怎么办

m0rkklqb

m0rkklqb1#

JAX没有为scipy.sparse矩阵API提供 Package 器,但是jax.experimental.sparse为与jitvmap、autodiff和其他JAX转换兼容的稀疏数组提供了一些实验性支持。
用法如下所示:

from jax.experimental import sparse

Hamil_ONE = sparse.BCOO.fromdense(Hamil_multi_pol)

你可以在这里阅读更多:https://jax.readthedocs.io/en/latest/jax.experimental.sparse.html

xzlaal3s

xzlaal3s2#

它说jax.scipy.sparse模块没有csr_matrix函数。相反,您可以使用jax.numpy

import jax.numpy as jnp

# create a matrix with some zeros
data = jnp.array([1, 2, 0, 0, 3, 4])
indixs = jnp.array([0, 1, 1, 2, 0, 1])
indptr = jnp.array([0, 2, 3, 6])

# create the csr_matrix (2x3)
csr_matrix = jsp.sparse.csr_matrix((data, indixs, indptr), shape=(2, 3))

相关问题