【发布时间】:2014-01-31 08:30:57
【问题描述】:
我正在运行一个随机森林 ML 脚本,该脚本使用一个测试大小的数据集 5 k 观察值,其中包含一组参数和不同数量的森林。我的真实模型接近 100 万个观测值,有 500 多个参数。我试图计算这个模型需要多少内存,假设有 x 个森林。
为了做到这一点,我可以使用一种方法来返回脚本运行时使用了多少内存。是否可以返回这个,以便我可以计算计算完整模型所需的 RAM?
我目前使用以下来告诉我计算需要多长时间:
global starttime
print "The whole routine took %.3f seconds" % (time() - starttime)
编辑回复到我自己的答案
感觉像是在和自己对话,但是嘿嘿,我尝试运行以下代码来了解实际使用了多少内存,以及为什么当我增加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 需要多少内存,而我无法在不知道我的较小模型需要多少内存的情况下计算这个。
【问题讨论】:
标签: python-2.7 memory memory-management scikit-learn random-forest