python中稀疏梯度和jacobian矩阵的快速计算
sparsegrad的Python项目详细描述
sparsegrad自动高效地计算任意numpy向量值函数的解析稀疏雅可比矩阵。它被设计用于求解大型非线性方程组。sparsegrad内存效率高,因为它不使用计算图。通过索引、矩阵乘法、分支和自定义函数支持任意计算。
用sparsegradseed
>>>importnumpyasnp>>>importsparsegrad.forwardasad>>>deff(x):...returnx-x[::-1]>>>x=np.linspace(0,1,3)>>>print(f(ad.seed(x)).dvalue)(0,0)1.0(0,2)-1.0(2,0)-1.0(2,2)1.0
sparsegrad是用纯python编写的。为了便于安装和最佳的可移植性,它不包含扩展模块。在实际问题中,它可以提供与adol-c相似或更好的性能。这要归功于算法优化和避免scipy.sparse缓慢部分的优化。
sparsegrad依赖于numpy和scipy进行计算。它与Python2.7和3.x都兼容。
安装
pip install sparsegrad
建议在安装之后运行测试套件
python -c "import sparsegrad; sparsegrad.test()"