parallel-processing - 如何使用 4 个 CPU 和 python 训练多个模型时间?
问题描述
我的任务就像
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。为了将训练时间成本降低到上述代码的四分之一,因此我想同时model[0].fit(X, Y)
在 CPU-0、model[1].fit(X, Y)
CPU-1、model[2].fit(X, Y)
CPU-2 和model[3].fit(X, Y)
CPU-3 上执行。我应该怎么办?
解决方案
将 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()
推荐阅读
- matlab - 在matlab armax中使用sim
- reactjs - 如何重新定义 React 类道具的类型
- linux - Raspberry pi:关联“screen”和 Systemd 以在 pi 启动时自动启动 minecraft 服务器
- python - 如果输入不正确,有没有办法阻止程序运行?Python
- python - 我想计算特定月份的熊猫列的平均值
- amazon-web-services - AWS Systems Manager - 实例未显示
- system-verilog - 系统 Verilog 参数化模块名称
- python - PNG不会在弹出窗口Tkinter中显示
- reactjs - cypress - 启动服务器并测试 - 在 React 应用程序上运行 http 模拟服务器和套接字服务器
- c++ - 初始化在同一头文件中定义的底层的顶层类