Python 3.6:处理内存错误
Python 3.6: Deal with MemoryError
我为 'machine learning' 任务编写了一个软件。
为此,我需要将大量数据加载到程序的 RAM 中(用于所需的 'fit' 功能)。
实际上,在口语 运行 中,'load_Data' 函数应该 return 2 'ndarrays'(来自 'numpy' 库)大约 12,000 到 110,000 大小的 float64 类型。
我在 运行 期间遇到内存错误。
我在一个较小的数据集(2,000 x 110,000 数组)上测试了该程序,它确实可以正常工作。
我想到了2个解决方案:
1. 使用内存更大的电脑(现在我使用的是 8 GB 内存)。
2.在'fit'方法中使用10次,每次都在all的另一部分
数据集。
那么,我想问一下:
解决方案 #2 是一个好的解决方案吗?
还有更多解决方案吗?
非常感谢。
当然,第一个解决方案非常好,但相当昂贵。但是,一旦您拥有数百 GB 的数据集,您打算怎么办?对于大多数消费者来说,购买那么多 RAM 是令人望而却步的。
事实上,批处理(正如您所暗示的)是在非常大的数据集上进行训练的最常用方法。大多数机器学习工具包允许您批量提供数据。由于您没有暗示您使用哪一个,我会推迟到例如the Keras documentation 关于如何设置。
为 scikit-learn
编辑,可以查看 here 支持批处理的估算器列表。
我为 'machine learning' 任务编写了一个软件。
为此,我需要将大量数据加载到程序的 RAM 中(用于所需的 'fit' 功能)。
实际上,在口语 运行 中,'load_Data' 函数应该 return 2 'ndarrays'(来自 'numpy' 库)大约 12,000 到 110,000 大小的 float64 类型。
我在 运行 期间遇到内存错误。
我在一个较小的数据集(2,000 x 110,000 数组)上测试了该程序,它确实可以正常工作。
我想到了2个解决方案:
1. 使用内存更大的电脑(现在我使用的是 8 GB 内存)。
2.在'fit'方法中使用10次,每次都在all的另一部分
数据集。
那么,我想问一下:
解决方案 #2 是一个好的解决方案吗?
还有更多解决方案吗?
非常感谢。
当然,第一个解决方案非常好,但相当昂贵。但是,一旦您拥有数百 GB 的数据集,您打算怎么办?对于大多数消费者来说,购买那么多 RAM 是令人望而却步的。
事实上,批处理(正如您所暗示的)是在非常大的数据集上进行训练的最常用方法。大多数机器学习工具包允许您批量提供数据。由于您没有暗示您使用哪一个,我会推迟到例如the Keras documentation 关于如何设置。
为 scikit-learn
编辑,可以查看 here 支持批处理的估算器列表。