我尝试使用 numpy.random.multivariate_normal 对大约 30000 多个变量进行随机抽样,而它总是占用我所有的内存(32G)然后终止。实际上,相关性是球形的,每个变量只与大约 2500 个其他变量相关。是否有另一种方法来指定球形协方差矩阵,而不是完整的协方差矩阵,或任何其他方式来减少内存的使用?
我的代码是这样的:
cm = [] #covariance matrix
for i in range(width*height):
cm.append([])
for j in range(width*height):
cm[i].append(corr_calc()) #corr is inversely proportional to the distance
mean = [vth]*(width*height)
cache_vth=numpy.random.multivariate_normal(mean,cm)