我的任务是
from sklearn.gaussian_process import GaussianProcessRegressor
num = 100
model = dict()
for i in range(100):
model[i]=GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=20)
for i in range(num):
model[i].fit(X,Y)其中X,Y是我的训练数据,分别包含特征和标签。
我的Ubuntu有4个CPU。因此,为了将训练时间减少到上述代码的四分之一,我希望同时在CPU-0上执行model[0].fit(X, Y)、在CPU-1上执行model[1].fit(X, Y)、在CPU-2上执行model[2].fit(X, Y)和在CPU-3上执行model[3].fit(X, Y)。我该怎么办?
发布于 2019-04-26 11:19:54
将input_x和input_y替换为列表中的实际训练数据。
input_x=[X for i in range(100)]
input_y=[Y for i in range(100)]
def trainmodel(X,Y):
model=GaussianProcessRegressor(n_restarts_optimizer=20)
model.fit(X,Y)
return model
models=joblib.Parallel(n_jobs=4,verbose=1)(map(joblib.delayed(trainmodel),input_x,input_y))您还应该检查可用cpu的数量,以防万一
import multiprocessing
multiprocessing.cpu_count()https://stackoverflow.com/questions/55860169
复制相似问题