使用(大)numpy阵列馈电时,列车测试分离碰撞RAM
Scikit学习中的使用(大)numpy阵列馈电时,列车测试分离碰撞RAM,numpy,scikit-learn,Numpy,Scikit Learn,Scikit学习中的train\u test\u split方法在使用shape(56212242243)的numpy数组和shape(5621,3)的和y馈送X时,会崩溃RAM并终止执行 X包含224x224 RGB数据的5621个图像 y包含3个类的5621个OneHot编码标签 我加载了一些图像作为训练数据,以输入一个卷积神经网络,但当分解为训练和测试数据时,它崩溃了。是否有其他选项可以加载图像以避免内存消耗 复制步骤: import numpy as np from sklearn.
train\u test\u split
方法在使用shape(56212242243)的numpy数组和shape(5621,3)的和y
馈送X
时,会崩溃RAM并终止执行
- X包含224x224 RGB数据的5621个图像
- y包含3个类的5621个OneHot编码标签
我加载了一些图像作为训练数据,以输入一个卷积神经网络,但当分解为训练和测试数据时,它崩溃了。是否有其他选项可以加载图像以避免内存消耗
复制步骤:
import numpy as np
from sklearn.model_selection import train_test_split
# Generate dummy data
X = np.random.random((5621, 224, 224, 3))
y = np.random.randint(3, size=(5621, 3))
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, shuffle=True) # Breaks here
我希望3766个列车样本和1855个测试样本作为输出,但它发送SIGKILL(和100%RAM使用率)并退出执行。您确定它是在Split method中进行chrashing还是之前就已经进行了chrashing
您也可以手动拆分它:
X_train = X[:int(len(X)*.8)]
y_train = y[:int(len(X)*.8)]
X_test = X[int(len(X)*.8):]
y_test y[int(len(X)*.8):]
您的数据已经是随机的,所以不应该是排序问题。它不是因为拆分方法而崩溃,而是因为numpy数组的大小。我做了一些测试,加载X
和y
阵列需要大约7GB的RAM,因此调用train\u test\u split
(生成另一个副本)达到15GB的已用RAM,使用Linuxfree-h