我正在尝试为 CIFAR-10 数据创建一个简单的分类器,但是当我尝试执行此 python 代码时:
import cPickle
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import LinearSVC
def unpickle(file):
with open(file, 'rb') as fo:
dict = cPickle.load(fo)
return dict
def main():
s="data_batch_"
dicts=[None]*5
for i in xrange(1,6):
dicts[i-1]=unpickle(s+str(i))
X, y = dicts[0]['data'], dicts[0]['labels']
for i in xrange(1,5):
X = np.concatenate((X, dicts[i]['data']))
y = np.concatenate((y, dicts[i]['labels']))
classifier=OneVsRestClassifier(LinearSVC(random_state=0)).fit(X, y)
只要 X 和 y 的大小不太大 - 10000,或多或少一点,它就可以正常工作。但是当我尝试了 2 个批次的 20000 个样本(或所有 5 个批次的 50000 个样本)时,我得到了“Python.exe 停止工作”的弹出窗口。是代码本身有问题还是内存用完了?
如果内存确实用完了,我该怎么办?是否可以执行 fit(X,y) 5 次,每个批次的每个循环?