Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Ridge的大内存消耗_Python_Machine Learning_Scikit Learn_Cross Validation - Fatal编程技术网

Python 使用Ridge的大内存消耗

Python 使用Ridge的大内存消耗,python,machine-learning,scikit-learn,cross-validation,Python,Machine Learning,Scikit Learn,Cross Validation,我试图用scikit learn进行交叉验证,但遇到了一些难以解决的内存问题 基本上,我发现当我增加搜索的超参数的数量,或者当我增加GridSearchCV对象的交叉验证循环的数量时,内存消耗几乎呈线性增加。如果我使用足够大的矩阵,这将导致危险的高内存消耗 以下是我所说的要点: 有人知道为什么会这样吗?看起来GridSearchCV基本上只是以列表理解方式循环遍历cv对象和模型参数选项。这似乎不应该增加内存使用率 更新:进一步研究后,发现问题不在于GridSearchCV,而在于Ridge中的

我试图用scikit learn进行交叉验证,但遇到了一些难以解决的内存问题

基本上,我发现当我增加搜索的超参数的数量,或者当我增加GridSearchCV对象的交叉验证循环的数量时,内存消耗几乎呈线性增加。如果我使用足够大的矩阵,这将导致危险的高内存消耗

以下是我所说的要点:

有人知道为什么会这样吗?看起来GridSearchCV基本上只是以列表理解方式循环遍历cv对象和模型参数选项。这似乎不应该增加内存使用率


更新:进一步研究后,发现问题不在于GridSearchCV,而在于Ridge中的一些解算器(我相应地更新了要点)。这可能是scipy线性代数库的一个问题,请参见第

期,请恕我直言,因为我对此没有任何支持,这只是我模模糊糊地回忆起来的东西。每次sklearn学习一个模型时,它都会在本地复制每个模型的学习集,以完成学习部分。我认为这是内存消耗和时间性能之间的权衡。在这种情况下,我认为它不仅仅是在参数之间循环:它会同时将每个参数播种到一个新的模型(可能是为了多线程的目的?)您的要点根本没有使用
GridSearchCV
@AdrienNK数据集有时会被复制,但大多数scikit学习代码都会尽量避免复制。@larsmans我有一个案例,我需要从~2Gb的数据集学习,它在内存中加载4Gb(峰值)(内存中数组的大小+模型的一个副本)。@AdrienNK是的,但这并不像您之前所说的“每次”都会发生。0.15已经过优化,可以比旧版本做更少的复制。@larsmans哦,是的,我的错,我没有意识到我在那里是那么绝对的。