假设我有一个给定的固定输入矩阵。
scipy
的稀疏 SVD对于我的机器(英特尔 macbook)上不同运行的相同输入svds
似乎是一致的。
svds
每次从一个处理器/机器/版本到另一个处理器/机器/版本的输入相同,是否保证产生相同的输出?或者它是特定于运行时的,并且对于给定的输入,从一个实例到另一个实例仅大致或几乎相同?
这对我来说很重要,因为虽然在大多数情况下几乎或大致相同,但存在一个对偶解,它在某些算法中的每个 SVD 分解都指向正交相反的方向(并且它根据随机播种从运行切换到运行在内部求解器中),我想确保这不会发生......
- 但是 - 虽然我的测试似乎表明它具有一致的运行时输出,但 scipy 的文档清楚地表明,至少对于他们的 k-eigvals 稀疏 svd 算法,不能保证“特征值的顺序”。
这似乎意味着 SVD 解决方案的任一侧(正常或对偶)都可能由其底层求解器返回……但 K-eigvals/eigvecs 算法与完整解决方案相比,有不同的技术可供选择。