首页 > 解决方案 > MemoryError: 无法分配形状 (2515, 406272) 和数据类型 float32 的数组

问题描述

我正在尝试在 Anaconda 上的 Spyder 上使用 CNN 进行指节识别。我有 2515 张图像要处理,似乎 8 GB 不足以做到这一点。我能做些什么?我应该再买一块 RAM 还是在 Kaggle/Colab 上制作这个项目会是更好的方法?

arr = np.array(finger_dat)
arr = arr.reshape((2515, 406272))

arr = arr / 255

#############Making dataset####################

label = np.array(range(503))
label = np.repeat(label, 5)

dataset = pd.DataFrame(arr)
dataset['label'] = label

X = dataset.iloc[:, 0:406272]
y = dataset.iloc[:, -1]

from sklearn.tree import DecisionTreeClassifier
dtf = DecisionTreeClassifier()
dtf.fit(X, y)

dtf.score(X, y)

标签: pythonmachine-learningdeep-learningout-of-memoryram

解决方案


尝试批量处理数据。

看看这个文档。来自 sklearn: 计算规模的策略:更大的数据


推荐阅读