Ich benutze dev-Version von Python sklearn Paket mit NN-Implementierung. Meine Aufgabe ist es 4 NN mit unterschiedlichen Eingangsdaten zu trainieren und die durchschnittliche die PrognosenVerwenden von Python-Multiprozessor für Slearn NN
X_median = preprocessing.scale(data_median)
X_min = preprocessing.scale(data_min)
X_max = preprocessing.scale(data_max)
X_mean = preprocessing.scale(data_mean)
ich creat ein Neuronale Netze wie diese
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)
(Standard sklearn Funktion)
und ich möchte um sie auf den oben beschriebenen Datensätzen zu schulen. Ohne meinen Code mit Pool wird wie folgt aussehen:
NN1.fit(X_mean,train_y)
NN2.fit(X_median,train_y)
NN3.fit(X_min,train_y)
NN4.fit(X_max,train_y)
Natürlich, da alle 4 Training unabhängig möchte ich sie parallel laufen zu lassen, und ich nehme an, ich Pool für diese verwendet werden soll. Allerdings verstehe ich nicht vollständig, wie die Berechnung durchgeführt wird. Ich würde davon ausgehen, so etwas zu schreiben:
pool = Pool()
pool.apply_async(NN1.fit, args = (X_mean, train_y))
Dies ist jedoch keine Ergebnisse produziert, kann ich auch wie dieser Typ (vorbei an nur ein Argument) und das Programm ohne Fehler beenden! pool.apply_async(NN1.fit, args = (X_mean,))
.
Was ist der richtige Weg, um solche Berechnungen durchzuführen? Kann jemand eine gute Ressource empfehlen, um die Verwendung von Python-Multiprocessing zu verstehen?
Für 'apply_async' müssen Sie einen Callback bereitstellen, der ausgeführt wird, wenn die Berechnung abgeschlossen ist. Ich denke, du willst 'apply()', das auf die Berechnung wartet, bevor es zurückkehrt. – mirosval
Tatsächlich Code wie dies scheint die Arbeit tun: 'def MyFunc (MYNN, X, train_y): \t MyNN.fit (X, train_y) \t Rückkehr MyNN' und dann ' NN_mean = pool.apply (MyFunc , (NN_mean, X_mean, train_y)) ' – Shir