【发布时间】:2016-10-18 05:39:27
【问题描述】:
我正在做一个家庭作业,我注意到当均值和协方差的维度非常高时,multivariate_normal 将永远占用所有 CPU,而不会产生任何结果。
示例代码sn-p,
cov_true = np.eye(p)
mean_true = np.zeros(p)
beta_true = multivariate_normal(mean_true, cov_true, size=1).T
当p=5000 时,它将永远运行。
环境,python3.4和python3.5,numpy 1.11.0
这真的是一个错误还是我错过了什么?
【问题讨论】:
-
它对我有用。相同的版本。将第 3 行更改为此,看看它是否有效:
beta_true = np.random.multivariate_normal(mean_true, cov_true, size=1).T -
是的,只是导入不同,你运行这条线需要多长时间?
-
“是”是否意味着它工作并且没有占用 100% cpu?我的:
--- 15.3049829006 seconds --- -
哦,我使用了不同的导入,
from np.random import multivariate_normal,是的,我的意思是在我的 13' MacBook Pro 上使用 100% CPU,real 0m53.319s, user 1m40.845s, sys 0m2.128s,在现代工作站上,它稍微好一点,但它使用所有 48 个内核,我不明白为什么。 @Yugi -
我觉得你的时间是15秒肯定有问题,我的时间是50秒,你用的是p=5000吗?我的测试程序只是导入,
p=5000和这三行。