SciPy SVD 对比Numpy 奇异值分解
SciPy SVD vs. Numpy SVD
SciPy 和 Numpy 都内置了奇异值分解 (SVD) 函数。命令基本上是 scipy.linalg.svd
和 numpy.linalg.svd
。这两者有什么区别?它们中的任何一个都比另一个更好吗?
除了错误检查,实际工作似乎在 lapack 内完成
numpy
和 scipy
.
在没有做任何基准测试的情况下,我想性能应该是相同的。
来自 FAQ page,它说 scipy.linalg
子模块为 Fortran LAPACK 库提供了一个更完整的包装器,而 numpy.linalg
试图能够独立于 LAPACK 进行构建。
我为 svd
函数的不同实现做了一些 benchmarks,发现 scipy.linalg.svd
比 numpy 对应的函数更快:
然而,jax 封装的 numpy,又名 jax.numpy.linalg.svd
更快:
基准测试的完整笔记本可用here。
SciPy 和 Numpy 都内置了奇异值分解 (SVD) 函数。命令基本上是 scipy.linalg.svd
和 numpy.linalg.svd
。这两者有什么区别?它们中的任何一个都比另一个更好吗?
除了错误检查,实际工作似乎在 lapack 内完成
numpy
和 scipy
.
在没有做任何基准测试的情况下,我想性能应该是相同的。
来自 FAQ page,它说 scipy.linalg
子模块为 Fortran LAPACK 库提供了一个更完整的包装器,而 numpy.linalg
试图能够独立于 LAPACK 进行构建。
我为 svd
函数的不同实现做了一些 benchmarks,发现 scipy.linalg.svd
比 numpy 对应的函数更快:
然而,jax 封装的 numpy,又名 jax.numpy.linalg.svd
更快:
基准测试的完整笔记本可用here。