我想创建GUI以使用 QFileDialge 选择数据集文件,并使用交叉验证方法使用此数据集对SVM进行培训。
当数据很大并且GUI崩溃时,交叉验证会花费很多时间。因此我使用QThread进行培训。但是,当我设置作业-1的数量以使用我的CPU sklearn的所有核心时,返回以下警告并且仅使用1核心。
\安纳康达\ lib中\站点包\ sklearn \的外部\ JOBLIB \ parallel.py:547: UserWarning:无法嵌套多处理支持的并行循环 线程下方,设置n_jobs = 1 ** self._backend_args)
from PyQt5.Qt import QThread
from sklearn.model_selection import cross_val_score
from sklearn import svm
class train(QThread):
def __init__(self,data,class_):
super().__init__()
self.data = data
self.cls = class_
def run(self):
self.score = cross_val_score(estimator=svm.SVC(), # smv
X=self.ata, y=self.cls, # data
cv=10, # number of partition
n_jobs=-1) # all the cores in cpu