首页 > 解决方案 > 任务无法取消序列化

问题描述

我正在尝试评估 ANN。如果我使用 ,我会得到准确度n_jobs = 1,但是,当我使用时,n_jobs = - 1会出现以下错误。 BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.

我尝试过使用其他数字,但只有在我使用时才有效n_jobs = 1

这是我正在运行的代码: accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = 10, n_jobs = -1)

这是我得到的错误:

 Traceback (most recent call last):
 File "<ipython-input-12-cc51c2d2980a>", line 1, in <module>
 accuracies = cross_val_score(estimator = classifier, X = X_train, 
 y = y_train, cv = 10, n_jobs = -1)

 File "C:\Users\javie\Anaconda3\lib\site- 
 packages\sklearn\model_selection\_validation.py", line 402, in 
 cross_val_score
 error_score=error_score)

 File "C:\Users\javie\Anaconda3\lib\site- 
 packages\sklearn\model_selection\_validation.py", line 240, in 
 cross_validate
 for train, test in cv.split(X, y, groups))

 File "C:\Users\javie\Anaconda3\lib\site- 
 packages\sklearn\externals\joblib\parallel.py", line 930, in __call__
 self.retrieve()

 File "C:\Users\javie\Anaconda3\lib\site- 
 packages\sklearn\externals\joblib\parallel.py", line 833, in retrieve
 self._output.extend(job.get(timeout=self.timeout))

 File "C:\Users\javie\Anaconda3\lib\site- 
 packages\sklearn\externals\joblib\_parallel_backends.py", line 521, in 
 wrap_future_result
 return future.result(timeout=timeout)

 File "C:\Users\javie\Anaconda3\lib\concurrent\futures\_base.py", line 
 432, in result
 return self.__get_result()

 File "C:\Users\javie\Anaconda3\lib\concurrent\futures\_base.py", line 
 384, in __get_result
 raise self._exception

 BrokenProcessPool: A task has failed to un-serialize. Please ensure that 
 the arguments of the function are all picklable.`

Spyder 应该并行分析每个批次,但即使我使用n_jobs = 1它也只能分析 10 个 epoch。

标签: pythonspyder

解决方案


在 Spyder 的 iPython 控制台中使用多处理时,总是会发生这种情况。一种解决方法是改为从命令行运行脚本。


推荐阅读