问题描述
我正在使用一个使用 sklearn
分类类(nilearn
但它并不重要)的包。
但是,我正在尝试将它与自定义 cv 参数一起使用。喜欢:
cv = iter(((iTr1,iTs1),(iTr2,iTs2),...))
现在,指定的函数有以下块:
from sklearn.model_selection import cross_val_score
from joblib import Parallel,delayed,cpu_count
scores = Parallel(n_jobs=n_jobs,verbose=verbose)( \
delayed(_group_iter_search_light)(*someArgs,cv,*someMoreArgs) \
for thread_id,mtrx in enumerate(matrices))
...
在_group_iter_search_light
函数中,使用cv
的相关块是:
cross_val_score(estimator,X[:,row],y,cv=cv,n_jobs=1,scoring=scoring)
鉴于此,我的代码崩溃并显示以下消息: ValueError:没有足够的值来解包(预期为 3,得到 0)
但是,当我将代码(不建议篡改公共包,我知道...)更改为:
scores = [_group_iter_search_light(*someArgs,*someMoreArgs) for mtrx in matrices]
也就是说 - 用非并行版本替换并行版本,它完美运行。
任何想法为什么以及我能做什么? Loadwise,我对串行没问题,但如果可能的话,我非常喜欢使用普通版本......
谢谢,
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)