У меня есть функция, в которой я строю 3 разные модели на одном наборе данных (10-кратное cv) и заполняю прогнозы вне выборки в массиве (каждый столбец массива - это прогнозы для данной модели).Поскольку нет оснований делать это последовательно, я хотел использовать многопроцессорность.
Есть три модели для одновременного запуска, и далее, каждая модель может использовать многопоточность во время обучения.
Как мне установить n_jobs функции Parallel?Должно ли это быть 3, так как это все, что мне нужно для запуска, а затем установите для каждого потока число для конкретных моделей максимально доступным / 3?ИЛИ установить n_jobs в -1, и это обеспечит полный доступ ко всем ресурсам для каждой модели?
def train_models(i):
for train_index, test_index in kf.split(X.values):
#create train and validation splits here
if i == 0:
#Train first model type
model=model_type_1(....,threads=?)
if i == 1:
#Train second model type
model=model_type_2(....,threads=?)
if i == 2:
#Train third model type
model=model_type_3(....,threads=?)
Parallel(n_jobs=?,verbose =20)(delayed(train_models)(i) for i in range(3))