[PYTHON] Parallele Verarbeitung mit Parallel von Scikit-Learn

Nachtrag 2019/1016: Ich habe über die Cache-Funktion von Joblib geschrieben. [[Python] Verwenden Sie den Joblib-Cache, um dieselbe Berechnung wegzulassen](https://tma15.github.io/blog/2019/10/06/python-Verwenden Sie den Joblib-Cache, um dieselbe Berechnung wegzulassen /)

Apropos Scikit-Lern-Tutorials: Die Einführung von @Scaled_Wurm Man ist sehr einfach zu verstehen. Diesmal habe ich zufällig den Quellcode gelesen und eine Nische notiert, die nicht im Blogeintrag eingeführt wurde. Die Schlussfolgerung ist, dass, wenn es keinen bestimmten Grund gibt, der in Multiprocessing geschriebene Teil durch Parallel ersetzt werden kann.

Parallel

Ist Multiprocessing nutzlos?

Parallel ist (Original ist Notizen im Quellcode)

Streit

Beispiel

Einfaches Beispiel

>>> from math import sqrt
>>> from sklearn.externals.joblib import Parallel, delayed
>>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]

Beispiel für den Fortschritt

>>> from time import sleep
>>> from sklearn.externals.joblib import Parallel, delayed
>>> r = Parallel(n_jobs=2, verbose=5)(delayed(sleep)(.1) for _ in range(10)) #doctest: +SKIP
[Parallel(n_jobs=2)]: Done   1 out of  10 | elapsed:    0.1s remaining:    0.9s
[Parallel(n_jobs=2)]: Done   3 out of  10 | elapsed:    0.2s remaining:    0.5s
[Parallel(n_jobs=2)]: Done   6 out of  10 | elapsed:    0.3s remaining:    0.2s
[Parallel(n_jobs=2)]: Done   9 out of  10 | elapsed:    0.5s remaining:    0.1s
[Parallel(n_jobs=2)]: Done  10 out of  10 | elapsed:    0.5s finished

>>> from math import sqrt
>>> from sklearn.externals.joblib import Parallel, delayed

>>> def producer():
...     for i in range(6):
...         print('Produced %s' % i)
...         yield i

>>> out = Parallel(n_jobs=2, verbose=100, pre_dispatch='1.5*n_jobs')(
...                         delayed(sqrt)(i) for i in producer()) #doctest: +SKIP
Produced 0 ###
Produced 1 ###Geben Sie pre_dispatch an + default is'all '+ Wenn ein Job viel Speicher belegt, scheint er durch Reduzieren verwendet zu werden. + Im folgenden Beispiel werden 3 (1,5 * 2 Jobs) aufgerufen, bevor 3 Jobs parallel verarbeitet werden 1. und 2 ..
Produced 2 ###Dritte
[Parallel(n_jobs=2)]: Done   1 jobs       | elapsed:    0.0s
Produced 3
[Parallel(n_jobs=2)]: Done   2 jobs       | elapsed:    0.0s
Produced 4
[Parallel(n_jobs=2)]: Done   3 jobs       | elapsed:    0.0s
Produced 5
[Parallel(n_jobs=2)]: Done   4 jobs       | elapsed:    0.0s
[Parallel(n_jobs=2)]: Done   5 out of   6 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=2)]: Done   6 out of   6 | elapsed:    0.0s finished

Recommended Posts

Parallele Verarbeitung mit Parallel von Scikit-Learn
Parallelverarbeitung mit Mehrfachverarbeitung
Parallelverarbeitung mit lokalen Funktionen
[Kapitel 6] Einführung in Scicit-Learn mit 100 Klopfen Sprachverarbeitung
Rastersuche von Hyperparametern mit Scikit-learn
[Python] Einfache Parallelverarbeitung mit Joblib
Grundlagen der binärisierten Bildverarbeitung durch Python
Isomap mit Scikit-lernen
SLICECAP: Geteilte Parallelverarbeitung von PCAP-Dateien
DBSCAN mit Scikit-Learn
Clustering mit Scikit-Learn (1)
Clustering mit Scikit-Learn (2)
PCA mit Scikit-Learn
Zeichnen mit Matrix-Reinventor von Python Image Processing-
kmeans ++ mit scikit-learn
Beispiel für eine effiziente Datenverarbeitung mit PANDAS
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
Über die Verarbeitungsgeschwindigkeit von SVM (SVC) von Scikit-Learn
Prognostizieren Sie die zweite Runde des Sommers 2016 mit scikit-learn
Asynchrone Verarbeitung mit Arduino (asynchrone Verarbeitung von Verarbeitungsanforderungen von Linux)
100 Sprachverarbeitung Knock-75 (mit Scicit-Learn): Gewicht der Identität
Parallele Verarbeitung ohne tiefe Bedeutung in Python
Informationen zum Verhalten der Warteschlange während der Parallelverarbeitung
Kreuzvalidierung mit Scikit-Learn
Bildverarbeitung mit MyHDL
Datensätze mit Pandas verarbeiten (1)
Datensätze mit Pandas verarbeiten (2)
Mehrklassen-SVM mit Scikit-Learn
Clustering mit scikit-learn + DBSCAN
Scikit-Lernen mit Chemoinfomatik
Bildverarbeitung mit Python
DBSCAN (Clustering) mit Scikit-Learn
SMP parallel zu OpenMP
Installieren Sie scikit.learn mit pip
Verschiedene Verarbeitung von Python
Berechnen Sie tf-idf mit scikit-learn
Bildverarbeitung mit PIL
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Einführung in die verteilte Parallelverarbeitung von Python durch Ray
Definieren Sie Ihre eigene Distanzfunktion mit k-Mitteln des Scikit-Lernens
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Lernen Sie mit "Google Colaboratory" ganz einfach 100 Sprachverarbeitungsklopfen 2020.
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Bildverarbeitung mit Python (Teil 2)
Über max_iter von LogisticRegression () von scikit-learn
100 Sprachverarbeitungsklopfen mit Python 2015
Parallele Berechnung mit iPython Notebook
Bildverarbeitung mit PIL (Pillow)
"Apple-Verarbeitung" mit OpenCV3 + Python3
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Datenbanksuche (Überprüfung der Verarbeitungsgeschwindigkeit mit oder ohne Index)
Neuronales Netzwerk mit Python (Scikit-Learn)
Konsistenz des Scikit-Learn-API-Designs
Bewegungsgleichung mit Sympy
Akustische Signalverarbeitung mit Python (2)
100 Sprachverarbeitung Knock-77 (mit Scicit-Learn): Messung der korrekten Antwortrate