python - 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)
解决方案
尝试批量处理数据。
看看这个文档。来自 sklearn: 计算规模的策略:更大的数据
推荐阅读
- python - 矩阵的相邻单元
- html - 页脚上方的 div 影响页脚样式,如何解决?
- java - 从 Tomcat 中运行的 Servlet 中使用 Selenium WebDriver 的配方
- java - 为什么在返回值之前将字符串与空值连接?
- angular - 在 Angular 7 中,我在哪里可以找到 HttpClient 库?
- java - 有没有更有效的方法来使用流从 ResultSet (Java) 中的 int 列中获取平均值
- javascript - 删除输入之外的表单输入值
- python - 区分 Django 中的“帐户类型”
- mysql - SQL 关系数据库:数据操作和计算
- mongodb - 如何为类别子类别管理创建猫鼬模式?