Python 3.6:处理MemoryError

时间:2018-08-18 18:15:39

标签: python machine-learning python-3.6 large-data

我已经编写了用于“机器学习”任务的软件。

为此,我需要将大量数据加载到程序的RAM中(用于所需的“拟合”功能)。
实际上,在口语运行中,“ load_Data”函数应返回2个“ ndarrays”(来自“ numpy”库),其大小约为float64类型的12,000至110,000。

在运行过程中出现内存错误。
我在一个较小的数据集(2,000 x 110,000数组)上测试了该程序,它确实可以正常工作。

我考虑过2种解决方案:
 1.使用具有更多RAM的计算机(现在我正在使用8 GB RAM)。
 2.以“适合”方式使用10次,每次都在所有其他部位     数据集。

所以,我想问:
解决方案2是一个好的解决方案吗?
还有更多解决方案吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

当然,第一个解决方案非常好,但是相当昂贵。但是,一旦拥有数百GB的数据集,您将要做什么?对于大多数消费者来说,购买如此多的RAM是禁止的。

实际上,批处理(如您所暗示的)是在非常大的数据集上进行训练的最常见方法。大多数机器学习工具包都允许您批量提供数据。由于您尚未暗示要使用哪一个,因此我将按照the Keras documentation进行设置。

scikit-learn进行

Edit ,您可以在here中查找支持批量处理的估算器列表。