私は、NN実装のPython sklearnパッケージの開発版を使用しています。 私の仕事は、私がsklearn用のPythonマルチプロセッシングの使用NN
この
NN1 = MLPClassifier(hidden_layer_sizes = (50), activation = 'logistic', algorithm='adam', alpha= 0 , max_iter = 40, batch_size = 10, learning_rate = 'adaptive', shuffle = True, random_state=1)
NN2 = MLPClassifier(hidden_layer_sizes = (50), activation = 'logistic', algorithm='adam', alpha= 0 , max_iter = 40, batch_size = 10, learning_rate = 'adaptive', shuffle = True, random_state=1)
NN3 = MLPClassifier(hidden_layer_sizes = (50), activation = 'logistic', algorithm='adam', alpha= 0 , max_iter = 40, batch_size = 10, learning_rate = 'adaptive', shuffle = True, random_state=1)
NN4 = MLPClassifier(hidden_layer_sizes = (50), activation = 'logistic', algorithm='adam', alpha= 0 , max_iter = 40, batch_size = 10, learning_rate = 'adaptive', shuffle = True, random_state=1)
(標準sklearn機能)のようなニューラルネットワークをクリートし、私が欲しいの予測
X_median = preprocessing.scale(data_median)
X_min = preprocessing.scale(data_min)
X_max = preprocessing.scale(data_max)
X_mean = preprocessing.scale(data_mean)
異なる入力データと平均で4 NNを訓練することです上記のデータセットでそれらを訓練する。 プールを使用せずに私のコードは次のようになります。独立している
もちろんNN1.fit(X_mean,train_y)
NN2.fit(X_median,train_y)
NN3.fit(X_min,train_y)
NN4.fit(X_max,train_y)
トレーニング4全て以来、私はそれらを並列に実行したい、と私は、このためにプールを使用する必要がありますと仮定します。しかし、私は完全に計算がどのように実行されるのか理解していません。
pool = Pool()
pool.apply_async(NN1.fit, args = (X_mean, train_y))
しかし、これは何も結果を生成しません、私も(一つだけ引数を渡す)このように入力すると、プログラムはエラーなしで終了します:私はこのような何かを書くことを前提とします! pool.apply_async(NN1.fit, args = (X_mean,))
。
このような計算を実行する正しい方法は何でしょうか? 誰かがPythonのマルチプロセッシングの使い方を知る良いリソースをアドバイスできますか?
'apply_async'では、計算が完了したときに実行されるコールバックを提供する必要があります。私はあなたが 'apply()'を返す前に計算を待っていると思います。 'デフMYFUNC(MyNN、X、train_y): – mirosval
は確かに、このようなコードは、仕事をするようだ \t MyNN.fit(X、train_y) \tリターンMyNN' 、その後 ' NN_mean = pool.apply(MYFUNC 、(NN_mean、X_mean、train_y)) ' – Shir