我正在运行一个随机森林ML脚本,该脚本使用一个测试大小的数据集5k观测值,该数据集具有一定数量的参数,具有不同数量的森林。我的真实模型有500多个参数,接近100万次观测。我正试图计算这个模型在假设x个森林的情况下需要多少内存。
为了做到这一点,我可以使用一种方法来返回在运行脚本时使用了多少内存。有没有可能返回这个,这样我就可以计算计算完整模型所需的RAM?
我目前使用以下内容来告诉我计算需要多长时间:
global starttime
print "The whole routine took %.3f seconds" % (time() - starttime)
将Re编辑为我自己的答案
感觉我在和自己交谈,但嘿,嘿,我试着运行以下代码来了解实际使用了多少内存,以及为什么当我增加n_estimators_value
的数量时,我的电脑内存不足。不幸的是,所有的%内存使用率都是一样的,我想这是因为它在不正确的时间计算内存使用率,它需要在峰值时记录它,同时实际拟合随机林。参见代码:
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需要多少内存,如果不知道我的较小型号需要多少内存的话,我就无法计算出这个内存。
/usr/bin/time
报告程序的峰值内存使用情况。还有用于Python的memory_profiler
。