最近用XGBOOST模型跑学习曲线时,每次跑了大半天,最后要出结果时,给我报错,提示序列化错误,气死我了!!!每次尝试不同方法重新跑都得好久,最后还是失败了,挺磨人的。
报错提示:BrokenProcessPool: A task has failed to un-serialize. Please ensure that the arguments of the function are all picklable
参考了别人的帖子
尝试1:把n_jobs调小一点就不会报错,说可能是服务器跑多进程任务时,跑出来的结果无法序列化回去?平时调到200,都得跑大半天,后来试了下调到50还是多少来着,好像是可以,要记得先把 running terminals and kernals 里这文件先关掉,再重启。刚开始好像可以,但后来好像尝试了又不行了。
尝试2:库有冲突,把joblib卸载了重装,也重启了内核,还是不行。
后来自己偶然发现:别导入这个joblib包就没事
解决办法:注释掉joblib包,别导入就不会报错,很神奇!!!