私がする必要があるのは、異なるコアを使用して、同じデータで同時に 2 つの回帰モデルを (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 の) スクリプトとして実行しています。どのように進めればよいかについて何か提案はありますか?