Προγραμματισμός

Τι είναι το TensorFlow; Η βιβλιοθήκη μηχανικής μάθησης εξήγησε

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

Δημιουργήθηκε από την ομάδα του Google Brain, το TensorFlow είναι μια βιβλιοθήκη ανοιχτού κώδικα για αριθμητικούς υπολογισμούς και μηχανική εκμάθηση μεγάλης κλίμακας. Το TensorFlow συνδυάζει μια σειρά μοντέλων και αλγορίθμων μηχανικής μάθησης και βαθιάς μάθησης (γνωστή και ως νευρωνική δικτύωση) και τα καθιστά χρήσιμα μέσω μιας κοινής μεταφοράς. Χρησιμοποιεί το Python για να παρέχει ένα βολικό API front-end για την κατασκευή εφαρμογών με το πλαίσιο, ενώ εκτελεί αυτές τις εφαρμογές σε C ++ υψηλής απόδοσης.

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

Πώς λειτουργεί το TensorFlow

Το TensorFlow επιτρέπει στους προγραμματιστές να δημιουργούν γραφήματα ροής δεδομένων—Δομές που περιγράφουν τον τρόπο μετακίνησης των δεδομένων μέσω ενός γραφήματος ή μιας σειράς κόμβων επεξεργασίας Κάθε κόμβος στο γράφημα αντιπροσωπεύει μια μαθηματική λειτουργία και κάθε σύνδεση ή ακμή μεταξύ των κόμβων είναι ένας πολυδιάστατος πίνακας δεδομένων ή τανύων μύς.

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

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

Οι εφαρμογές TensorFlow μπορούν να εκτελεστούν σε οποιονδήποτε στόχο είναι βολικό: ένα τοπικό μηχάνημα, ένα σύμπλεγμα στο cloud, συσκευές iOS και Android, CPU ή GPU. Εάν χρησιμοποιείτε το cloud της Google, μπορείτε να εκτελέσετε το TensorFlow στο προσαρμοσμένο πυρίτιο TensorFlow Processing Unit (TPU) της Google για περαιτέρω επιτάχυνση. Τα προκύπτοντα μοντέλα που δημιουργήθηκαν από την TensorFlow, ωστόσο, μπορούν να αναπτυχθούν στις περισσότερες συσκευές όπου θα χρησιμοποιηθούν για την προβολή προβλέψεων.

Το TensorFlow 2.0, που κυκλοφόρησε τον Οκτώβριο του 2019, ανανέωσε το πλαίσιο με πολλούς τρόπους με βάση τα σχόλια των χρηστών, για να διευκολύνει την εργασία με (π.χ., χρησιμοποιώντας το σχετικά απλό Keras API για εκπαίδευση μοντέλων) και πιο αποδοτικό. Η κατανεμημένη εκπαίδευση είναι ευκολότερη, χάρη σε ένα νέο API και η υποστήριξη για το TensorFlow Lite καθιστά δυνατή την ανάπτυξη μοντέλων σε μια μεγαλύτερη ποικιλία πλατφορμών. Ωστόσο, ο κώδικας που γράφτηκε για παλαιότερες εκδόσεις του TensorFlow πρέπει να ξαναγραφεί - μερικές φορές μόνο ελαφρώς, μερικές φορές σημαντικά - για να επωφεληθεί στο μέγιστο από τις νέες δυνατότητες του TensorFlow 2.0.

Τα οφέλη του TensorFlow

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

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

Το TensorFlow κερδίζει επίσης πολλά πλεονεκτήματα από την υποστήριξη μιας εμπορικής στολής A-list στο Google. Η Google όχι μόνο τροφοδότησε τον ταχύ ρυθμό ανάπτυξης πίσω από το έργο, αλλά δημιούργησε πολλές σημαντικές προσφορές γύρω από το TensorFlow που καθιστούν ευκολότερη την ανάπτυξη και ευκολότερη στη χρήση: το προαναφερθέν πυρίτιο TPU για επιταχυνόμενη απόδοση στο cloud της Google. ένας διαδικτυακός κόμβος για κοινή χρήση μοντέλων που δημιουργήθηκαν με το πλαίσιο · στο πρόγραμμα περιήγησης και φιλικές προς κινητά ενσαρκώσεις του πλαισίου και πολλα ΑΚΟΜΑ.

Μία προειδοποίηση: Ορισμένες λεπτομέρειες σχετικά με την εφαρμογή του TensorFlow καθιστούν δύσκολη την απόκτηση απολύτως ντετερμινιστικών αποτελεσμάτων κατάρτισης μοντέλου για ορισμένες εκπαιδευτικές εργασίες. Μερικές φορές ένα μοντέλο που έχει εκπαιδευτεί σε ένα σύστημα θα διαφέρει ελαφρώς από ένα μοντέλο που έχει εκπαιδευτεί σε ένα άλλο, ακόμα και όταν τροφοδοτούνται με τα ίδια δεδομένα. Οι λόγοι γι 'αυτό είναι ολισθηροί, π.χ. πώς προέρχονται τυχαίοι αριθμοί και πού, ή ορισμένες μη ντετερμινιστικές συμπεριφορές κατά τη χρήση GPU. Τούτου λεχθέντος, είναι δυνατόν να επιλύσουμε αυτά τα ζητήματα και η ομάδα του TensorFlow εξετάζει περισσότερους ελέγχους για να επηρεάσει τον ντετερμινισμό σε μια ροή εργασίας.

Σχετικό βίντεο: Μηχανική εκμάθηση και αποκρυπτογράφηση AI

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

TensorFlow εναντίον του ανταγωνισμού

Το TensorFlow ανταγωνίζεται ένα πλήθος άλλων πλαισίων μηχανικής μάθησης. Τα PyTorch, CNTK και MXNet είναι τρία μεγάλα πλαίσια που καλύπτουν πολλές από τις ίδιες ανάγκες. Παρακάτω έχω παρατηρήσει πού ξεχωρίζουν και έρχονται αντιμέτωποι με την TensorFlow.

  • PyTorch, εκτός από την κατασκευή του με την Python, και έχει πολλές άλλες ομοιότητες με το TensorFlow: εξαρτήματα με επιτάχυνση υλικού κάτω από την κουκούλα, ένα πολύ διαδραστικό μοντέλο ανάπτυξης που επιτρέπει την εργασία σχεδιασμού-όπως-πηγαίνετε και πολλά ήδη χρήσιμα συστατικά που περιλαμβάνονται ήδη. Το PyTorch είναι γενικά μια καλύτερη επιλογή για γρήγορη ανάπτυξη έργων που πρέπει να τεθούν σε λειτουργία σε σύντομο χρονικό διάστημα, αλλά το TensorFlow κερδίζει για μεγαλύτερα έργα και πιο περίπλοκες ροές εργασίας.

  • CNTK, το Microsoft Cognitive Toolkit, όπως το TensorFlow χρησιμοποιεί μια δομή γραφήματος για να περιγράψει τη ροή δεδομένων, αλλά εστιάζει περισσότερο στη δημιουργία νευρωνικών δικτύων βαθιάς μάθησης. Το CNTK χειρίζεται πολλές εργασίες νευρωνικών δικτύων γρηγορότερα και διαθέτει ένα ευρύτερο σύνολο API (Python, C ++, C #, Java). Ωστόσο, το CNTK δεν είναι τόσο εύκολο να το μάθετε ή να το αναπτύξετε όσο το TensorFlow.

  • Apache MXNet, που υιοθετήθηκε από την Amazon ως το κορυφαίο πλαίσιο βαθιάς μάθησης στο AWS, μπορεί να κλιμακώσει σχεδόν γραμμικά σε πολλές GPU και πολλαπλές μηχανές. Υποστηρίζει επίσης ένα ευρύ φάσμα API γλωσσών - Python, C ++, Scala, R, JavaScript, Julia, Perl, Go - αν και τα εγγενή API του δεν είναι τόσο ευχάριστα για να λειτουργήσουν όσο το TensorFlow's.