Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy eig/eigh给出了对称半正定矩阵的负值_Numpy_Linear Algebra_Eigenvalue - Fatal编程技术网

Numpy eig/eigh给出了对称半正定矩阵的负值

Numpy eig/eigh给出了对称半正定矩阵的负值,numpy,linear-algebra,eigenvalue,Numpy,Linear Algebra,Eigenvalue,GCN后CIFAR数据集的以下代码: xtx = np.dot(dataset.train_data[i].transpose(), dataset.train_data[i]) e, q = np.linalg.eigh(xtx) print(np.max(e), np.min(e)) 生成以下输出: 2.65138e+07 -0.00247511 这是不一致的,因为xtx是对称半正定的。我的猜测是,这可能是由于早期应用了GCN,但最小特征值甚至没有接近0 更新:所以我的矩阵的条件号是8.

GCN后CIFAR数据集的以下代码:

xtx = np.dot(dataset.train_data[i].transpose(), dataset.train_data[i])
e, q = np.linalg.eigh(xtx)
print(np.max(e), np.min(e))
生成以下输出:

2.65138e+07 -0.00247511
这是不一致的,因为
xtx
是对称半正定的。我的猜测是,这可能是由于早期应用了GCN,但最小特征值甚至没有接近0


更新:所以我的矩阵的条件号是8.89952e+09。事实上,我之前忘记了取平均值,所以现在最大特征值是~573,而最小值是-7.14630133e-08。我的问题是我正在尝试做ZCA。在这种情况下,我应该如何进行?将对角石化添加到
xtx
或特征值?

什么是
xtx
的数据类型(检查
xtx.dtype
)?当你认为最大值和最小特征值之间有10个数量级时,它会非常接近于零,因为@ WarrenWeckesser指出,这对于32位浮点(平均7-9位数的精度)来说是在误差范围之内的,请同时发布<代码> NUPY.LIALG.COND的结果。(xtx)@maxymoo,您假设所有特征值都具有相同的精度,这当然取决于
eigh
的工作方式。我对此表示怀疑,并尝试在lapack代码中快速找到这一点,但没有成功。我已更新了问题