Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scikit learn 支持多处理的并行循环不能嵌套在线程下面_Scikit Learn_Python Multithreading_Joblib - Fatal编程技术网

Scikit learn 支持多处理的并行循环不能嵌套在线程下面

Scikit learn 支持多处理的并行循环不能嵌套在线程下面,scikit-learn,python-multithreading,joblib,Scikit Learn,Python Multithreading,Joblib,joblib中出现此类问题的原因是什么? '多处理支持的并行循环不能嵌套在线程下面,设置n_jobs=1' 我应该怎么做来避免这样的问题 实际上,我需要实现XMLRPC服务器,它在后台线程中运行大量计算,并通过UI客户端的轮询报告当前进度。它使用基于joblib的scikit learn 附言: 我只是简单地将线程的名称改为“MainThread”,以避免此类警告,而且一切看起来都很正常(按预期并行运行,不会出现问题)。这种解决方法将来可能会出现什么问题?这似乎是由于JobLib库中的问题。在写

joblib中出现此类问题的原因是什么? '多处理支持的并行循环不能嵌套在线程下面,设置n_jobs=1' 我应该怎么做来避免这样的问题

实际上,我需要实现XMLRPC服务器,它在后台线程中运行大量计算,并通过UI客户端的轮询报告当前进度。它使用基于joblib的scikit learn

附言:
我只是简单地将线程的名称改为“MainThread”,以避免此类警告,而且一切看起来都很正常(按预期并行运行,不会出现问题)。这种解决方法将来可能会出现什么问题?

这似乎是由于JobLib库中的问题。在写这篇文章的时候,这似乎是固定的,但尚未发布。如问题中所述,脏修复程序需要将主线程重新命名为
MainThread


threading.current_thread().name='MainThread'

我在线程内使用sklearn进行预测时遇到了相同的警告,使用的是我加载的模型,该模型安装了n_jobs>1。当您对模型进行pickle处理时,它会出现,该模型将与其参数(包括n_作业)一起保存

为避免警告(以及潜在的序列化成本),请在酸洗模型时将n_jobs设置为1:

clf = joblib.load(model_filename).set_params(n_jobs=1)

据我所知,问题是你的一个线程产生了另一个多线程计算。一、 就个人而言,你不认为有必要这样做(是的,你可以使用复杂的fork模型,但是为什么你要使用并行循环呢?),因为你可能已经在利用你所有的并行性了。你把这个叫做什么?这对我没有影响。@Cerin就在我初始化并安装分类器之前。这对我也没有影响。我刚刚注意到,在升级了一些LIB之后,这个问题又开始出现了。看起来行为改变了。