我想使用scikit-learn
作为工作来运行一些celery
。问题是scikit-learn
拒绝/不能使用芹菜工作者进程中的多重处理。通常,它会给出如下警告:
[2018-10-23 09:24:45,858:警告/ PoolWorker-1] /usr/local/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.py:739: UserWarning:不能在后台调用后援并行循环 多处理,设置n_jobs = 1
它将继续按顺序处理。
我对Python的多处理选项不太熟悉,因此我迷失在一个名为multiprocessing
,joblib
,billiard
,loky
的图书馆的丛林中。显然celery
在内部使用billiard
。 scikit-learn=0.20.0
使用loky
的内置版本。
一些相关的GitHub问题: