Python 机器学习图像处理中的记忆错误

Python 机器学习图像处理中的记忆错误,python,numpy,image-processing,machine-learning,Python,Numpy,Image Processing,Machine Learning,我正在构建一个图像处理分类器,这是我代码的一小部分,我的问题是第一行表明我有一个整数数组img\u data\u list。我正在将其转换为float,但这给了我一个内存错误 我有一个7 Gb和12 Gb的RAM数据集 img_data = np.array(img_data_list) img_data = img_data.astype('float32') img_data /= 255 print (img_data.shape) 你在哪里困惑?您有一个7G数据集。您的代码需要三个副本

我正在构建一个图像处理分类器,这是我代码的一小部分,我的问题是第一行表明我有一个整数数组
img\u data\u list
。我正在将其转换为float,但这给了我一个
内存错误

我有一个7 Gb和12 Gb的RAM数据集

img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255
print (img_data.shape)

你在哪里困惑?您有一个7G数据集。您的代码需要三个副本:原始数据集、NumPy数组和该数组的浮点转换。你没有足够的内存来复制第二份


显而易见的解决方案是在机器上增加内存;您拥有的配置不足以解决您试图解决的问题类。另一种可能是在输入时将数据转换为float32,这样RAM中只有一个数据副本。

查看是否使用
np。divide(…out=img_data)
有帮助。文件-。您可以使用
np.asarray(img\u data\u list)
避免在那里进行复制,但我猜浮点转换无论如何都在进行复制。所以,只需结合:
np.asarray(img_数据_列表)。astype('float32')
。Divakar np.asarray(img_数据_列表)的注意事项。astype('float32')对我不起作用。你能给我另一个解决方案吗?谢谢你的帮助。你能告诉我如果我不将numpy数组转换为float类型,我想知道为什么要这样做吗,我们除以255,因为我想我们正在进行某种规格化。这一切都取决于你打算如何对数据进行后期处理,以及你是否可以优化内存。注意@Divakar我正在制作一个图像处理分类器,其中我有66个类,那么你认为每个类需要多少图像剪枝我正在制作一个图像处理分类器,其中我有66个类,那么你认为呢想一想每堂课我需要多少张图片(1)这是一个单独的问题。(2) 这更适合统计组;(3) 这还不足以提出建议——这取决于图像的复杂性、它们的差异和相似性以及模型的复杂性。这里的最终问题是您拥有的数据集是否能产生所需的准确性。我建议您减少数据集,并分批运行它,以适应RAM。如果有必要,将其减少为单个图像批。还有一件事我想问,我也在构建文本处理分类器,在相同的场景下,我的问题是我应该如何为每个类准备数据集任何建议(1)这是一个单独的问题;它总共有一个单独的帖子。(2) 你的问题太笼统了;问题在很大程度上取决于您未指定的因素。(3) 在这里提问之前,您需要进行研究:之前有许多问题,以及深入的学习讨论,都涉及输入准备。