项目场景:
编程语言:python
编程环境:windows+pycharm
具体环境:使用的因果推断模型, DMLOrthoForest
问题描述:
DMLOrthoForest中出现的进程紊乱错误,导致,进程反馈乱码,进程终结。
joblib.externals.loky.process_executor.BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable.
出错位置:
est = DMLOrthoForest(n_trees=100,
max_depth=5,
model_Y=WeightedLasso(alpha=0.01),
model_T=WeightedLasso(alpha=0.01))
原因分析:
可能是windows进程紊乱,跑程序,一开始不会出现,但是之后再次实验,会报错,应该是之前进程没杀死,导致进程紊乱
解决方案:
方法1
我们将默认的n_jobs=-1改成n_jobs=1即可,使用单线程。
缺点,实验速度变慢
即
est = DMLOrthoForest(n_trees=100,
max_depth=5,
n_jobs=1,
model_Y=WeightedLasso(alpha=0.01),
model_T=WeightedLasso(alpha=0.01))
方法2
还有一种解决办法,重启windows系统,再跑程序,一开始不会出现,但是之后再次实验,会报错,应该是之前进程没杀死,导致进程紊乱。