Σπίτι Προσωπικά Οικονομικά Που εκτελείται σε παράλληλη Python για την επιστήμη δεδομένων

Που εκτελείται σε παράλληλη Python για την επιστήμη δεδομένων

Πίνακας περιεχομένων:

Βίντεο: Map of Computer Science 2024

Βίντεο: Map of Computer Science 2024
Anonim

Οι περισσότεροι υπολογιστές σήμερα είναι πολύπλευροι (δύο ή περισσότεροι επεξεργαστές σε ένα πακέτο) με πολλαπλές φυσικές CPU. Ένας από τους σημαντικότερους περιορισμούς της Python είναι ότι χρησιμοποιεί έναν ενιαίο πυρήνα από προεπιλογή. (Δημιουργήθηκε σε μια εποχή που οι μόνοι πυρήνες ήταν ο κανόνας.)

Τα έργα της επιστήμης των δεδομένων απαιτούν πολλούς υπολογισμούς. Συγκεκριμένα, ένα μέρος της επιστημονικής πλευράς της επιστήμης των δεδομένων βασίζεται σε επαναλαμβανόμενες δοκιμές και πειράματα σε διαφορετικές μήτρες στοιχείων. Μην ξεχνάτε ότι η εργασία με τεράστιες ποσότητες δεδομένων σημαίνει ότι οι περισσότεροι χρονοβόροι μετασχηματισμοί επαναλαμβάνουν την παρατήρηση μετά από παρατήρηση (για παράδειγμα, πανομοιότυπες και μη σχετικές λειτουργίες σε διαφορετικά μέρη μιας μήτρας).

Η χρήση περισσότερων πυρήνων CPU επιταχύνει έναν υπολογισμό με έναν παράγοντα που ταιριάζει σχεδόν με τον αριθμό των πυρήνων. Για παράδειγμα, η κατοχή τεσσάρων πυρήνων θα σήμαινε ότι θα εργαστούμε στην καλύτερη περίπτωση τέσσερις φορές πιο γρήγορα. Δεν λαμβάνετε πλήρη τετραπλάσια αύξηση επειδή υπάρχει εναέρια όταν ξεκινάει μια παράλληλη διαδικασία - νέες εκτελούμενες περιπτώσεις Python πρέπει να ρυθμιστούν με τις σωστές πληροφορίες στη μνήμη και να ξεκινήσουν. κατά συνέπεια, η βελτίωση θα είναι μικρότερη από δυνητικά εφικτή, αλλά ακόμη σημαντική.

Η πολλαπλών επεξεργασιών λειτουργεί με την αναπαραγωγή του ίδιου κώδικα και του ίδιου περιεχομένου μνήμης σε διάφορες νέες περιπτώσεις του Python (οι εργαζόμενοι), υπολογίζοντας το αποτέλεσμα για καθένα από αυτά και επιστρέφοντας τα συγκεντρωμένα αποτελέσματα στην κύρια αρχική κονσόλα. Εάν η αρχική σας παρουσία καταλαμβάνει ήδη μεγάλο μέρος της διαθέσιμης μνήμης RAM, δεν θα είναι δυνατή η δημιουργία νέων παρουσιών και το μηχάνημά σας μπορεί να μην λειτουργεί σωστά.

Διασταυρωμένα επικυρώνει:

Δοκιμάζει τα αποτελέσματα μιας υποθέσεως εκμάθησης μηχανής χρησιμοποιώντας διαφορετικά δεδομένα εκπαίδευσης και δοκιμών

Αναζήτηση δικτύου:

  • μιας υποθετικής εκμάθησης μηχανής και δοκιμής των αποτελεσμάτων που προκύπτουν Πρόβλεψη Multilabel:

  • Τρόπος εκτέλεσης ενός αλγορίθμου πολλαπλών φορές κατά πολλαπλών στόχων όταν υπάρχουν πολλά διαφορετικά στοχευόμενα αποτελέσματα για την πρόβλεψη ταυτόχρονα

  • Μοντελοποίηση ενός μεγάλου αριθμού ταξινομητών, το καθένα ανεξάρτητο από το άλλο, όπως όταν χρησιμοποιείτε μοντέλα βασισμένα σε RandomForest Δεν χρειάζεται να κάνετε κάτι ιδιαίτερο για να εκμεταλλευτείτε τους παράλληλους υπολογισμούς - μπορείτε να ενεργοποιήσετε τον παραλληλισμό ρυθμίζοντας το n_jobs -parameter σε έναν αριθμό πυρήνων πάνω από 1 ή ρυθμίζοντας την τιμή στο -1, πράγμα που σημαίνει ότι θέλετε να χρησιμοποιήσετε όλες τις διαθέσιμες στιγμές CPU.

  • Εάν δεν εκτελείτε τον κώδικα σας από την κονσόλα ή από ένα Notebook IPython, είναι εξαιρετικά σημαντικό να διαχωρίσετε τον κώδικα από οποιαδήποτε εισαγωγή πακέτου ή ανάθεση συνολικής μεταβλητής στο σενάριο σας χρησιμοποιώντας το if __name __ == '__ main__': εντολή στην αρχή οποιουδήποτε κώδικα που εκτελεί πολυπολιτισμικό παραλληλισμό. Η εντολή if ελέγχει εάν το πρόγραμμα εκτελείται απευθείας ή καλείται από μια κονσόλα Python που ήδη εκτελείται, αποφεύγοντας οποιαδήποτε σύγχυση ή σφάλμα από την πολυπαραμετρική διαδικασία (όπως επαναλαμβανόμενη κλήση του παραλληλισμού). Επίδειξη πολλαπλής επεξεργασίας

Είναι καλή ιδέα να χρησιμοποιήσετε το IPython όταν τρέχετε μια επίδειξη του τρόπου με τον οποίο η πολυεπεξεργασία μπορεί πραγματικά να σας εξοικονομήσει χρόνο κατά τη διάρκεια των έργων επιστήμης δεδομένων. Η χρήση του IPython παρέχει το πλεονέκτημα της χρήσης της εντολής% timeit magic για την εκτέλεση χρονισμού. Ξεκινάτε φορτώνοντας ένα σύνολο δεδομένων πολλαπλών κλάσεων, έναν περίπλοκο αλγόριθμο εκμάθησης μηχανών (ο διαβαθμιστής διάνυσμα υποστήριξης ή SVC) και μια διαδικασία διασταυρούμενης επικύρωσης για την εκτίμηση αξιόπιστων βαθμολογιών που προκύπτουν από όλες τις διαδικασίες.

Το πιο σημαντικό πράγμα που πρέπει να γνωρίζουμε είναι ότι οι διαδικασίες γίνονται αρκετά μεγάλες επειδή η SVC παράγει 10 μοντέλα, τα οποία επαναλαμβάνει 10 φορές το καθένα χρησιμοποιώντας διασταυρούμενη επικύρωση, για συνολικά 100 μοντέλα.

από το sklearn. σύνολα δεδομένων import load_digits digits = load_digits () X, y = ψηφία. δεδομένα, ψηφία. στόχος από το sklearn. svm εισαγωγής SVC από sklearn. cross_validation Εισαγωγή cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 βρόγχοι, καλύτερο από 3: 17. 9 s ανά βρόχο < πρέπει να ενεργοποιήσετε τον παραλληλισμό πολλαπλών διευθύνσεων και να χρονομετρήσετε τα αποτελέσματα χρησιμοποιώντας τις ακόλουθες εντολές:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 loops, καλύτερα από 3: 11. 7 δευτερόλεπτα ανά βρόχο

Η μηχανή παραδειγμάτων παρουσιάζει ένα θετικό πλεονέκτημα χρησιμοποιώντας την επεξεργασία πολλαπλών κόμβων, παρά τη χρήση ενός μικρού συνόλου δεδομένων όπου η Python ξοδεύει το μεγαλύτερο μέρος του χρόνου ξεκινώντας κονσόλες και τρέχοντας ένα μέρος του κώδικα σε κάθε μία. Αυτή η δαπάνη, λίγα δευτερόλεπτα, εξακολουθεί να είναι σημαντική, δεδομένου ότι η συνολική εκτέλεση εκτείνεται για μια χούφτα δευτερόλεπτα. Απλά φανταστείτε τι θα συμβεί αν εργαστήκατε με μεγαλύτερα σύνολα δεδομένων - ο χρόνος εκτέλεσης θα μπορούσε να κοπεί εύκολα δύο ή τρεις φορές.

Παρόλο που ο κώδικας λειτουργεί καλά με IPython, βάζοντας το σε μια δέσμη ενεργειών και ζητώντας από την Python να την εκτελέσει σε κονσόλα ή χρησιμοποιώντας ένα IDE μπορεί να προκαλέσει σφάλματα λόγω των εσωτερικών λειτουργιών μιας εργασίας πολλαπλών εντολών. Η λύση είναι να βάλουμε όλο τον κώδικα κάτω από μια εντολή if, η οποία ελέγχει εάν το πρόγραμμα ξεκίνησε άμεσα και δεν κλήθηκε αργότερα. Ακολουθεί ένα σενάριο παράδειγμα:

από το sklearn. σύνολο δεδομένων import_digits από το sklearn. svm εισαγωγής SVC από sklearn. cross_validation εισαγωγή cross_val_score εάν __name__ == '__main__': digits = load_digits () X, y = ψηφία. δεδομένα, ψηφία. στόχος multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)

Που εκτελείται σε παράλληλη Python για την επιστήμη δεδομένων

Η επιλογή των συντακτών

Εξαρτήματα ηλεκτρονικών: Ενισχυτές ανοιχτού βρόχου

Εξαρτήματα ηλεκτρονικών: Ενισχυτές ανοιχτού βρόχου

Οι πιο βασικές ηλεκτρονικές χρήσεις ενός ενισχυτή Op είναι ως ενισχυτής. Εάν συνδέσετε μια πηγή εισόδου σε έναν από τους ακροδέκτες εισόδου και γειώσετε τον άλλο ακροδέκτη εισόδου, εμφανίζεται μια ενισχυμένη έκδοση του σήματος εισόδου στο εξωτερικό τερματικό. Μια σημαντική ιδέα στα κυκλώματα op-amp ...

Ηλεκτρονικά Στοιχεία: Δημοφιλή Op Amp Ενσωματωμένα Κυκλώματα - Dummy

Ηλεκτρονικά Στοιχεία: Δημοφιλή Op Amp Ενσωματωμένα Κυκλώματα - Dummy

Για την οικοδόμηση ενός πραγματικού ηλεκτρονικού κυκλώματος χρησιμοποιώντας Op-amp, φυσικά, θα πρέπει να χρησιμοποιήσετε ένα πραγματικό ενισχυτή op. Ευτυχώς, τα ενσωματωμένα ολοκληρωμένα κυκλώματα (IC) είναι άφθονα και σχεδόν όλα τα καταστήματα που πωλούν ηλεκτρονικά εξαρτήματα πωλούν διάφορους τύπους φθηνών IC-ενισχυτών. Το πιο δημοφιλές op-amp IC είναι το LM741, το οποίο έρχεται ...

Ηλεκτρονικά Συστατικά: Κύκλοι ταλαντωτών - ανδρείκελοι

Ηλεκτρονικά Συστατικά: Κύκλοι ταλαντωτών - ανδρείκελοι

. Η ακριβής κυματομορφή που παράγεται εξαρτάται από τον τύπο του κυκλώματος που χρησιμοποιείται για τη δημιουργία του ταλαντωτή. Ένα από τα συνηθέστερα χρησιμοποιούμενα κυκλώματα ταλαντωτών είναι κατασκευασμένο από ένα ζεύγος τρανζίστορ που είναι εφοδιασμένα για να εναλλάσσονται και να σβήνουν εναλλάξ. Αυτός ο τύπος κυκλώματος είναι ...

Η επιλογή των συντακτών

Ασκήσεις για ανδρείκελα Κατάρτιση για ανδρείκελα Εξάσκηση - ανδρείκελα

Ασκήσεις για ανδρείκελα Κατάρτιση για ανδρείκελα Εξάσκηση - ανδρείκελα

Η ασήμαντη εκπαίδευση είναι ένα σημαντικό βήμα στην ανάπτυξη των παιδιών. Ως γονέας, θα πρέπει να αναγνωρίσετε τα σημάδια ότι το παιδί σας είναι έτοιμο για την ομιλία της τουαλέτας, να ξεκινήσει μια διαδικασία ασήμαντης κατάρτισης, να συνεχίσει τη διαδικασία και να αναγνωρίσει πότε το παιδί σας είναι σχεδόν εκεί. Κατά τη διάρκεια της διαδρομής, πρέπει να σιγουρευτείτε ότι το παιδί σας ξέρει ...

Εκπαίδευση για παιδιά με αναπηρίες - ανδρείκελα

Εκπαίδευση για παιδιά με αναπηρίες - ανδρείκελα

Παιδιά, ανάλογα με την αναπηρία. Μπορεί να χρειαστεί να παρέχετε στηρίγματα υψηλής τεχνολογίας που διευκολύνουν την κίνηση από τον περιπατητή ή την αναπηρική καρέκλα στην τουαλέτα (δείτε την ενότητα "Εργασία με ειδικό εργαλείο" σε αυτό το άρθρο.) Από την άλλη πλευρά, το παιδί σας μπορεί να ...

Υποδηλώνουν ότι το παιδί σας είναι έτοιμο για ασήμαντη εκπαίδευση - ανδρείκελα

Υποδηλώνουν ότι το παιδί σας είναι έτοιμο για ασήμαντη εκπαίδευση - ανδρείκελα

Την ημέρα που κάθε γονιός επιθυμεί, αλλά δεν μπορείτε να βιάσετε τη διαδικασία. Περιμένετε τα σημάδια ότι το παιδί σας είναι έτοιμο να αντιμετωπίσει αυτή τη μεγάλη πρόκληση. Παρακολουθήστε τα σημεία στην παρακάτω λίστα. οι πρώτες πέντε είναι απολύτως απαραίτητες: μένει ξηρό τουλάχιστον δύο ώρες παίρνει Bummed από υγρό ή ...

Η επιλογή των συντακτών

Πώς να χρησιμοποιήσετε τη φαντασία σας για να χαλαρώσετε το σώμα σας για διαλογισμό - Dummies

Πώς να χρησιμοποιήσετε τη φαντασία σας για να χαλαρώσετε το σώμα σας για διαλογισμό - Dummies

Αναδυόμενο πεδίο της ιατρικής μυαλού-σώματος υπενθυμίζει στους ανθρώπους - και γιόγκι και σοφοί έχουν πει για χιλιετίες - το σώμα σας, το μυαλό σας και η καρδιά σας αποτελούν ένα ενιαίο και αδιάσπαστο σύνολο. Όταν οι σκέψεις σας συνεχίζουν να σφύζουν από την ανησυχία σας, το σώμα σας αποκρίνεται με τη σύσφιξη και την τάνυση, ειδικά σε ορισμένες σημαντικές θέσεις ...

Πώς να χρησιμοποιήσετε την προσοχή για τη διαχείριση του πόνου

Πώς να χρησιμοποιήσετε την προσοχή για τη διαχείριση του πόνου

Πόνος είναι κάτι που θα αντιμετωπίσει κάποιος σε κάποιο σημείο . Η προσοχή μπορεί να σας βοηθήσει να προσεγγίσετε πόνο με υγιεινό τρόπο. Ο οξύς πόνος είναι ένας αιχμηρός πόνος που διαρκεί για μικρό χρονικό διάστημα, μερικές φορές ορίζεται ως λιγότερο από 12 εβδομάδες. Η ιατρική είναι αρκετά καλή για τη θεραπεία του οξέος πόνου. Ο χρόνιος πόνος είναι ο πόνος που διαρκεί ...

Βελτίωση των σχέσεών σας - ανδρείκεS

Βελτίωση των σχέσεών σας - ανδρείκεS

Σχέσεις - είτε με την οικογένεια, τους φίλους ή τους εραστές; Και δεν έχει σημασία πόσο χαρούμενος και ευχαριστημένος είστε με τις σημαντικές σχέσεις στη ζωή σας, υπάρχει πάντα περιθώριο βελτίωσης. Οι σχέσεις, όπως όλες οι διεργασίες, επίσης καταλήγουν και ρέουν και σας παρουσιάζουν προκλήσεις. Εδώ είναι μερικές εξαιρετικές τεχνικές για να σας βοηθήσουμε ...