我需要做的就是,使用不同的内核同时在相同的数据上训练两个回归模型(使用 scikit-learn)。我试图自己弄清楚使用 Process 但没有成功。
gb1 = GradientBoostingRegressor(n_estimators=10)
gb2 = GradientBoostingRegressor(n_estimators=100)
def train_model(model, data, target):
model.fit(data, target)
live_data # Pandas DataFrame object
target # Numpy array object
p1 = Process(target=train_model, args=(gb1, live_data, target)) # same data
p2 = Process(target=train_model, args=(gb2, live_data, target)) # same data
p1.start()
p2.start()
如果我运行上面的代码,我会在尝试启动 p1 进程时收到以下错误。
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
p1.start()
File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
self._popen = Popen(self)
File "C:\Python27\lib\multiprocessing\forking.py", line 274, in __init__
to_child.close()
IOError: [Errno 22] Invalid argument
我在 Windows 上将所有这些作为脚本(在 IDLE 中)运行。关于我应该如何进行的任何建议?