Я хочу создать графический интерфейс, чтобы выбрать файл набора данных с помощью QFileDialge и запустить обучение SVM с этим набором данных, используя метод перекрестной проверки.
Перекрестная проверка занимает много времени, когда объем данных велик, и GUI падает.По этой причине я использую QThread для обучения.Однако, когда я устанавливаю количество заданий -1 для использования всех ядер моего процессора, sklearn возвращает следующее предупреждение и использует только 1 ядро.
\ anaconda \ lib \ site-packages \ sklearn \ externals \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