【发布时间】:2021-07-21 00:24:37
【问题描述】:
我正在为大型数据集的机器学习测试做多个嵌套循环
在这些循环中,我测试不同的算法和数据集大小
问题是我在这个错误或任何其他错误的过程中崩溃了
MemoryError: Unable to allocate 194. MiB for an array with shape (1662, 15269) 和数据类型 float64
我想要一种方法,无论错误如何,代码都会继续
这是我的代码
for Size in [10, 100, 1000, 10000,100000, 1000000]:
df_reps_all = pd.read_sql("EXEC GetReps_Idea14 " + str(Size) , conn)
df_results_all = pd.read_sql("EXEC GetResults14 " + str(Size) , conn)
for Model in ["SVC","LOG", "RF", "GNB", "KNN"]:
multilabel_binarizer = MultiLabelBinarizer()
multilabel_binarizer.fit(df['Code'])
y = multilabel_binarizer.transform(df['Code'])
if Model == "LOG":
mdl = LogisticRegression()
elif Model == "RF":
mdl = RandomForestClassifier()
elif Model == "GNB":
mdl = GaussianNB()
elif Model == "KNN":
mdl = KNeighborsClassifier()
elif Model == "SVC":
mdl = SVC()
print (120)
clf = OneVsRestClassifier(mdl)
y_pred = cross_val_predict(clf, dfMethod, y, cv=3, n_jobs=-1)
附言我的问题不是如何解决该错误。 我的问题是无论我遇到什么错误,如何继续处理代码
【问题讨论】:
-
这能回答你的问题吗? How to solve the memory error in Python
-
@enzo 谢谢,但我的问题不是如何解决错误。我的问题是无论我遇到什么错误,如何继续执行代码
-
把有问题的代码包装在
try ... except ... finally?除此之外,没有什么可说的。请澄清。
标签: python