返回使用的内存,以便我可以预测计算ML算法所需的内存

时间:2014-01-12 16:11:35

标签: python-2.7 memory memory-management scikit-learn random-forest

我正在运行一个随机森林ML脚本,使用测试大小数据集5 k观测值和一组具有不同数量森林的参数。我的真实模型接近100万个参数,有500多个参数。假设x个森林,我试图计算这个模型需要多少内存。

为了做到这一点,我可以使用一种方法来返回在运行脚本时使用了多少内存。是否可以返回,以便我可以计算计算完整模型所需的RAM?

我目前使用以下内容告诉我计算需要多长时间:

global starttime
print "The whole routine took %.3f seconds" % (time() - starttime)

编辑重新回答我自己的答案

感觉我正在与自己交谈一下但是嘿嘿,我尝试运行以下代码来了解实际使用了多少内存,以及为什么当我增加n_estimators_value我的PC耗尽的数量时记忆不幸的是,所有%的内存使用都回来了,我认为这是因为它在不正确的时间计算内存使用量,它需要在实际拟合随机森林时将其记录在峰值。见代码:

psutilpercent = psutil.virtual_memory()
print "\n", " --> Memory Check 1 Percent:", str(psutilpercent.percent) + "%\n"

n_estimators_value = 500
rf = ensemble.RandomForestRegressor(n_estimators = n_estimators_value, oob_score=True, random_state = 1)

psutilpercent = psutil.virtual_memory()
print "\n", " --> Memory Check 1 Percent:", str(psutilpercent.percent) + "%\n"

找出峰值内存使用情况的任何方法?我正在尝试计算需要多少内存才能安装相当大的RF,而我无法在不知道我的小型号需要多少内存的情况下计算出来。

1 个答案:

答案 0 :(得分:0)

/usr/bin/time报告程序的峰值内存使用情况。 Python也有memory_profiler