我为“机器学习”任务编写了一个软件。
为了完成这个任务,我需要将大量数据加载到程序的RAM中(用于所需的“fit”函数)。
在实际运行中,“load_Data”函数应该返回两个“ndarrays”(来自“numpy”库),每个数组的大小大约在12,000到110,000之间,类型为float64。
在运行过程中,我遇到了内存错误。
我测试了一个较小的数据集(2,000 x 110,000的数组),它可以正常工作。
我考虑了两个解决方案:
1. 使用内存更大的计算机(我现在使用的是8 GB的内存)。
2. 在“fit”方法中使用10次,每次处理数据集的不同部分。
所以,我想问:
解决方案#2是一个好方法吗?
还有其他解决方案吗?
非常感谢。
回答:
当然,第一个解决方案完全可行,但成本较高。但是,如果你有数百GB的数据集,你该怎么办?购买那么多内存对大多数消费者来说是难以承受的。
实际上,分批处理(如你所暗示的)是训练大型数据集最常见的方式。大多数机器学习工具包允许你以批次的方式提供数据。由于你没有提到你使用的是哪个工具包,我建议你参考例如Keras文档来了解如何设置分批处理。
编辑 对于scikit-learn
,可以查看这里,了解支持分批处理的估计器列表。