gpt4 book ai didi

python - 带有固定种子的 scipy.sparse.linalg.eigsh

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:43 24 4
gpt4 key购买 nike

我正在尝试使用 scipy.sparse.linalg.eigsh固定种子。

为此,我需要指定 v0 参数。但是,我无法弄清楚 v0 中到底需要什么,因为这里的文档非常少(它只是说 numpy.ndarray)并且错误消息对我来说没有信息。

代码:

import numpy as np
import scipy.sparse.linalg

A = scipy.sparse.rand(10,10)
# v0 = np.random.rand(10,10)
v0 = np.random.rand(10,5)
w, v = scipy.sparse.linalg.eigsh(A, k=5, v0=v0)

错误:

error: failed in converting 10th argument `workd' of _arpack.dsaupd to C/Fortran array

最佳答案

首先,文档在任何地方都没有提到参数 v0 必须对种子做任何事情。它说

v0 : ndarray, optional Starting vector for iteration. Default: random

根据我对初始向量的天真理解,当它开始寻找 特征值特征向量 时,它将此参数 v0 作为初始向量从开始,现在到 seed 的事情,我们使用 seed 来修复为这些向量生成的数字。所以你的问题真的没有意义。即使你运行这个程序,你也会得到不同的结果,为了避免我们使用 seed 来使结果可重现。

同样,我在这里可能是错的。

其次,如果您想为您的方法修复种子,我建议使用 numpy 来修复种子,因为 scipy 使用 numpy 生成随机数数。

所以代码看起来像这样

import numpy as np 
np.random.seed(seed= 13)

然后如果参数 v0 是种子你可以完全避免它

w, v = scipy.sparse.linalg.eigsh(A, k=5)

同样,我本可以将其发布在评论中,但最好还是添加一些代码来阐明您的观点。

附言

我可能误解了你的问题,如果是这样,请随时投反对票。

关于python - 带有固定种子的 scipy.sparse.linalg.eigsh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com