我目前正在尝试运行蒙特卡罗模拟,我需要超过5,000,000次迭代(此时输出仍然不一致)。
当我尝试运行它超过500万时,但是当我重新安排我的数组以获得以我可以轻松绘制它的方式排序的数据时,我会收到内存错误。 错误发生在
np.array([np.array([run_single_regression(inputs) for x in xrange(iterations)])]).transpose()
这是我运行的功能:
def Monte_Carlo_regressions(filename, iterations, do_plot = False):
inputs = data_assignment_regression(filename)
total_pow, total_energy = np.array([np.array([run_single_regression(inputs) for x in xrange(iterations)])]).transpose()
if do_plot:
plot(total_pow, 'Total Power Capacity (GW)')
plot(total_energy, 'Total Energy Storage Capacity (TWh)')
return total_pow.mean(0), total_pow.std(0), total_energy.mean(0), total_energy.std(0)
data_assignment_regression(filename)
函数返回一组分配给inputs
的一维数组。
run_single_regression(inputs)
函数估计该迭代的功率和能量输出,并返回包含该迭代的功率和能量的numpy数组。
如何避免内存错误?有没有办法可以重新排列数组而不必存储所有值?