Τι είναι το TensorFlow; Πώς λειτουργεί Archiδομή & Χαρακτηριστικά

⚡ Έξυπνη Σύνοψη

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

  • 🧮 Βασικό αντικείμενο: Ένας τανυστής είναι ένας n-διάστατος πίνακας του οποίου οι τιμές μοιράζονται έναν τύπο δεδομένων και ένα γνωστό ή μερικώς γνωστό σχήμα.
  • 🔗 Μοντέλο Γραφήματος: Οι κόμβοι φέρουν πράξεις, οι ακμές φέρουν τανυστές και ολόκληρο το γράφημα μπορεί να αποθηκευτεί, να μεταφερθεί και να αναπαραχθεί αργότερα.
  • Τριβάθμιο Archiδομή: Προεπεξεργαστείτε τα δεδομένα, δημιουργήστε το μοντέλο και, στη συνέχεια, εκπαιδεύστε το και αξιολογήστε το.
  • ⚠️ Όριο έκδοσης: Τα tf.placeholder και tf.Session ανήκουν στο TensorFlow 1.x και αφαιρέθηκαν στην έκδοση 2.0, η οποία εκτελείται ανενόχλητα από προεπιλογή.
  • 💾 Φόρτωση δεδομένων: Φορτώστε μικρά σύνολα δεδομένων στη μνήμη με pandas και χρησιμοποιήστε αγωγούς tf.data για οτιδήποτε είναι πολύ μεγάλο για να χωρέσει.
  • 📊 Παρακολούθηση: Το TensorBoard οπτικοποιεί το γράφημα, τις μετρήσεις και τις κατανομές βαρών ενώ ένα μοντέλο εκπαιδεύεται.

Τι είναι το TensorFlow Archiδομή

Τι είναι το TensorFlow;

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

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

Παράδειγμα TensorFlow

Για να δώσω ένα συγκεκριμένο παράδειγμα, Google οι χρήστες μπορούν να βιώσουν μια ταχύτερη και πιο εκλεπτυσμένη εμπειρία αναζήτησης με την Τεχνητή Νοημοσύνη. Εάν ο χρήστης πληκτρολογήσει μια λέξη-κλειδί στη γραμμή αναζήτησης, Google παρέχει μια σύσταση σχετικά με το ποια θα μπορούσε να είναι η επόμενη λέξη.

Παράδειγμα TensorFlow
Παράδειγμα TensorFlow

Google θέλει να χρησιμοποιήσει τη μηχανική μάθηση για να επωφεληθεί από τα τεράστια σύνολα δεδομένων της και να προσφέρει στους χρήστες την καλύτερη δυνατή εμπειρία. Τρεις διαφορετικές ομάδες χρησιμοποιούν τη μηχανική μάθηση:

  • Ερευνητές
  • Επιστήμονες δεδομένων
  • Προγραμματιστές

Μπορούν όλοι να χρησιμοποιήσουν το ίδιο σύνολο εργαλείων για να συνεργαστούν μεταξύ τους και να βελτιώσουν την αποτελεσματικότητά τους.

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

Κατασκευάστηκε για να τρέχει σε πολλαπλές CPU ή GPU, ακόμη και λειτουργικά συστήματα για κινητά, και έχει πολλά περιτυλίγματα σε πολλές γλώσσες όπως Python, C++ or Java.

Ιστορία του TensorFlow

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

  • Gmail
  • φωτογραφία
  • Google μηχανή αναζήτησης

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

Το TensorFlow κυκλοφόρησε δημόσια τον Νοέμβριο του 2015 και η έκδοση 1.0 ακολούθησε τον Φεβρουάριο του 2017. Η πολύ μεγαλύτερη αλλαγή ήρθε με TensorFlow 2.0 τον Σεπτέμβριο του 2019, το οποίο έκανε την εκτέλεση eager την προεπιλογή και υιοθέτησε το Keras ως το τυπικό API υψηλού επιπέδου. Από την έκδοση 2.16 και μετά, το Keras 3 είναι η προεπιλογή και ο ίδιος κώδικας μοντέλου μπορεί επίσης να εκτελεστεί σε JAX ή Py.Torbackends ch.

Το TensorFlow κυκλοφορεί με την άδεια Apache 2.0, επομένως μπορείτε να το χρησιμοποιήσετε, να το τροποποιήσετε και να το αναδιανείμετε, συμπεριλαμβανομένων των εμπορικών συναλλαγών, χωρίς να πληρώσετε. Google.

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

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

TensorFlow Archiδομή

Η αρχιτεκτονική TensorFlow λειτουργεί σε τρία μέρη:

  • Προεπεξεργασία των δεδομένων
  • Δημιουργήστε το μοντέλο
  • Εκπαιδεύστε και υπολογίστε το μοντέλο

Ονομάζεται TensorFlow επειδή δέχεται δεδομένα εισόδου ως πολυδιάστατο πίνακα, γνωστό και ως τεντωτήρες. Μπορείτε να κατασκευάσετε ένα είδος ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ των λειτουργιών (που ονομάζονται Γράφημα) που θέλετε να εκτελέσετε σε αυτήν την είσοδο. Η είσοδος μπαίνει στο ένα άκρο, και στη συνέχεια ρέει μέσω αυτού του συστήματος πολλαπλών λειτουργιών και βγαίνει από το άλλο άκρο ως έξοδο.

Πού μπορεί να εκτελεστεί το TensorFlow;

Οι απαιτήσεις υλικού και λογισμικού του TensorFlow εμπίπτουν σε δύο φάσεις:

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

Φάση εκτέλεσης ή συμπερασμάτωνΜόλις ολοκληρωθεί η εκπαίδευση, το μοντέλο μπορεί να εκτελεστεί σε πολλές πλατφόρμες:

  • Τρέχουσα επιφάνεια εργασίας Windows, macOS ή Linux
  • Το cloud ως υπηρεσία ιστού
  • Κινητές συσκευές όπως το iOS και Android

Μπορείτε να το εκπαιδεύσετε σε πολλαπλές μηχανές, στη συνέχεια μπορείτε να το εκτελέσετε σε διαφορετικό μηχάνημα, αφού έχετε το εκπαιδευμένο μοντέλο.

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

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

Στοιχεία TensorFlow

τανύων μύς

Το όνομα του TensorFlow προέρχεται άμεσα από το βασικό του πλαίσιο: τανύων μύςΣτο TensorFlow, όλοι οι υπολογισμοί περιλαμβάνουν τανσόρους. Ένας τανσόρ είναι ένας διάνυσμα or μήτρα n-διαστάσεων που αντιπροσωπεύουν όλους τους τύπους δεδομένων. Όλες οι τιμές σε έναν τανυστή διατηρούν τον ίδιο τύπο δεδομένων με έναν γνωστό (ή μερικώς γνωστό) σχήμα. Το σχήμα των δεδομένων είναι η διάσταση του πίνακα ή του πίνακα.

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

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

Διαγράμματα

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

  • Εκτελείται σε πολλαπλές CPU ή GPU, ακόμη και σε λειτουργικά συστήματα για κινητά
  • Η φορητότητα του γραφήματος επιτρέπει τη διατήρηση των υπολογισμών για άμεση ή μεταγενέστερη χρήση. Το γράφημα μπορεί να αποθηκευτεί για να εκτελεστεί στο μέλλον.
  • Όλοι οι υπολογισμοί στο γράφημα γίνονται συνδέοντας τανυστές μεταξύ τους
    • Ένα γράφημα έχει κόμβους και ακμές. Κάθε κόμβος εκτελεί μια μαθηματική πράξη και παράγει μια έξοδο, ενώ οι ακμές περιγράφουν τις σχέσεις εισόδου και εξόδου μεταξύ των κόμβων. Οι ίδιοι οι τανσόροι ταξιδεύουν κατά μήκος των ακμών.

Γιατί το TensorFlow είναι δημοφιλές;

Το TensorFlow έχει υιοθετηθεί ευρέως επειδή είναι προσβάσιμο σε κάθε επίπεδο εξειδίκευσης. Τα API του καλύπτουν τα πάντα, από ένα μοντέλο Keras τριών γραμμών έως ένα χειροποίητο CNN ή RNN. Επειδή ο υπολογισμός εκφράζεται ως γράφημα, το TensorBoard μπορεί να οπτικοποιήσει το δίκτυο και να κάνει την αποσφαλμάτωση πολύ πιο εύκολη. Επίσης, αναπτύσσεται σε μεγάλη κλίμακα, εκτελώντας σε CPU, GPU και TPU, και σε κινητά μέσω του TensorFlow Lite.

Το TensorFlow παραμένει ένα από τα δύο πιο χρησιμοποιούμενα frameworks βαθιάς μάθησης στο GitHub, μαζί με το Py.Torch.

TensorFlow Algorithms

Το TensorFlow συνοδεύεται από εκτιμητές υψηλού επιπέδου για διάφορους κλασικούς αλγόριθμους. Στο TensorFlow 1.x, αυτοί υπήρχαν στο tf.estimator:

  • Γραμμική παλινδρόμηση: tf.estimator.LinearRegressor
  • Ταξινόμηση: tf.estimator.LinearClassifier
  • Ταξινόμηση βαθιάς μάθησης: tf.estimator.DNNClassifier
  • Ευρεία και βαθιά μάθηση: tf.estimator.DNNLinearCombinedClassifier
  • Ενισχυμένη παλινδρόμηση δέντρου: tf.estimator.BoostedTreesRegressor
  • Ταξινόμηση ενισχυμένων δέντρων: tf.estimator.BoostedTreesClassifier

TensorFlow vs PyTorch: Ποιο πρέπει να επιλέξετε;

TensorFlow και PyTorΤα ch είναι τα δύο κυρίαρχα πλαίσια βαθιάς μάθησης και οι πρακτικές διαφορές έχουν μειωθεί σημαντικά από τότε που το TensorFlow 2.0 υιοθέτησε την eager execution.

Κριτήρια TensorFlow PyTorch
Αναπτύχθηκε από Google Εγκέφαλος Meta AI
Εκτέλεση Πρόθυμος, με προαιρετική σύνταξη γραφημάτων Πρόθυμος, με προαιρετική μεταγλώττιση
API υψηλού επιπέδου Κεράς, χτισμένο το Ξεχωριστές βιβλιοθήκες όπως η Lightning
Κινητό και edge Ώριμο, μέσω του TensorFlow Lite Βελτίωση, μέσω της ΕκτέλεσηςTorch
Ανάπτυξη προγράμματος περιήγησης TensorFlow.js Απαιτείται μετατροπή σε ONNX
Τυπικό οχυρό Παραγωγή και ανάπτυξη Έρευνα και πειραματισμός

Η ρεαλιστική απάντηση: επιλέξτε TensorFlow όταν το μοντέλο πρέπει να αποσταλεί σε κινητά, στο πρόγραμμα περιήγησης ή σε μια διαχειριζόμενη στοίβα εξυπηρέτησης και επιλέξτε PyTorch όταν κάνετε επανάληψη στην αρχιτεκτονική μοντέλου. Το Keras 3, το προεπιλεγμένο από την έκδοση 2.16 και μετά, μαλακώνει περαιτέρω την απόφαση, επειδή ο ίδιος κώδικας Keras μπορεί να εκτελεστεί σε TensorFlow, JAX ή Py.Torbackend ch.

Πώς λειτουργούν οι υπολογισμοί στο TensorFlow

⚠️ Σημείωση έκδοσης: οι παρακάτω οδηγίες χρησιμοποιούν το TensorFlow 1.χ στυλ γραφήματος-και-περιόδου σύνδεσης, το οποίο είναι ο πιο σαφής τρόπος για να δείτε πώς λειτουργεί στην πραγματικότητα το γράφημα ροής δεδομένων. Οι συναρτήσεις tf.placeholder(), tf.Session() και make_initializable_iterator() αφαιρέθηκαν στο TensorFlow 2.0 και θα εμφανίσει το AttributeError σε μια τρέχουσα εγκατάσταση. Η ενότητα TensorFlow 1.x έναντι TensorFlow 2.x πιο κάτω δίνει το σύγχρονο αντίστοιχο κάθε παραδείγματος.

import numpy as np
import tensorflow as tf

Στις δύο πρώτες γραμμές κώδικα, έχουμε εισαγάγει tensorflow ως tf. Με Python, είναι κοινή πρακτική η χρήση σύντομου ονόματος για μια βιβλιοθήκη. Το πλεονέκτημα είναι να αποφύγουμε να πληκτρολογήσουμε το πλήρες όνομα της βιβλιοθήκης όταν πρέπει να το χρησιμοποιήσουμε. Για παράδειγμα, μπορούμε να εισαγάγουμε tensorflow ως tf και να καλέσουμε tf όταν θέλουμε να χρησιμοποιήσουμε μια συνάρτηση tensorflow

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

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

Οι υπολογισμοί λειτουργούν στο TensorFlow

Παράδειγμα TensorFlow

Τέλος, θα εκτελέσουμε μια συνεδρία TensorFlow που θα εκτελέσει το υπολογιστικό γράφημα με τις τιμές των X_1 και X_2 και θα εκτυπώσει το αποτέλεσμα του πολλαπλασιασμού.

Ας ορίσουμε τους κόμβους εισόδου X_1 και X_2. Όταν δημιουργούμε έναν κόμβο στο TensorFlow, πρέπει να επιλέξουμε το είδος του κόμβου που θα δημιουργήσουμε. Οι κόμβοι X1 και X2 θα είναι ένας κόμβος placeholder. Ο placeholder αντιστοιχίζει μια νέα τιμή κάθε φορά που κάνουμε έναν υπολογισμό. Θα τους δημιουργήσουμε ως κόμβο placeholder κουκκίδας TF.

Βήμα 1: Ορίστε τη μεταβλητή

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

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

Βήμα 2: Ορίστε τον υπολογισμό

multiply = tf.multiply(X_1, X_2, name = "multiply")

Τώρα μπορούμε να ορίσουμε τον κόμβο που εκτελεί την πράξη πολλαπλασιασμού. Στο TensorFlow μπορούμε να το κάνουμε αυτό δημιουργώντας έναν κόμβο tf.multiply.

Θα περάσουμε στους κόμβους X_1 και X_2 στον κόμβο πολλαπλασιασμού. Λέει στο tensorflow να συνδέσει αυτούς τους κόμβους στο υπολογιστικό γράφημα, οπότε του ζητάμε να τραβήξει τις τιμές από τα x και y και να πολλαπλασιάσει το αποτέλεσμα. Ας δώσουμε επίσης στον κόμβο πολλαπλασιασμού το όνομα πολλαπλασιασμός. Είναι ολόκληρος ο ορισμός για το απλό υπολογιστικό μας γράφημα.

Βήμα 3: Εκτελέστε τη λειτουργία

Για να εκτελέσουμε λειτουργίες στο γράφημα, πρέπει να δημιουργήσουμε μια συνεδρία (session). Στο TensorFlow, αυτό γίνεται με την tf.Session(). Τώρα που έχουμε μια συνεδρία, μπορούμε να ζητήσουμε από την συνεδρία να εκτελέσει λειτουργίες στο υπολογιστικό μας γράφημα καλώντας την session. Για να εκτελέσουμε τον υπολογισμό, πρέπει να χρησιμοποιήσουμε την run.

Όταν εκτελείται η λειτουργία πολλαπλασιασμού, χρειάζεται τις τιμές των κόμβων X_1 και X_2, επομένως τις τροφοδοτείτε κατά τον χρόνο εκτέλεσης. Μπορούμε να το κάνουμε αυτό παρέχοντας μια παράμετρο που ονομάζεται feed_dict. Περνάμε την τιμή 1,2,3 για το X_1 και 4,5,6 για το X_2.

Εκτυπώνουμε τα αποτελέσματα με print(result). Θα πρέπει να δούμε 4, 10 και 18 για 1×4, 2×5 και 3×6

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

multiply = tf.multiply(X_1, X_2, name = "multiply")

with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})
    print(result)
[ 4. 10. 18.]

Επιλογές για τη φόρτωση δεδομένων στο TensorFlow

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

1. Φόρτωση δεδομένων στη μνήμηΕίναι η απλούστερη μέθοδος. Φορτώνετε όλα τα δεδομένα σας στη μνήμη ως έναν μόνο πίνακα. Γράφετε απλά Python για αυτό· τίποτα από αυτά δεν είναι ειδικό για το TensorFlow.

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

Τι λύση να χρησιμοποιήσω;

Φόρτωση δεδομένων στη μνήμη

Εάν το σύνολο δεδομένων σας δεν είναι πολύ μεγάλο, δηλαδή λιγότερο από 10 gigabyte, μπορείτε να χρησιμοποιήσετε την πρώτη μέθοδο. Τα δεδομένα μπορούν να χωρέσουν στη μνήμη. Μπορείτε να χρησιμοποιήσετε μια διάσημη βιβλιοθήκη που ονομάζεται Pandas για να εισάγετε αρχεία CSV. Θα μάθετε περισσότερα για τα πάντα στο επόμενο σεμινάριο.

Φόρτωση δεδομένων με αγωγό TensorFlow

Η δεύτερη μέθοδος λειτουργεί καλύτερα εάν έχετε μεγάλο σύνολο δεδομένων. Για παράδειγμα, εάν έχετε ένα σύνολο δεδομένων 50 gigabyte και ο υπολογιστής σας έχει μόνο 16 gigabyte μνήμης, τότε το μηχάνημα θα διακοπεί.

Σε αυτήν την περίπτωση, πρέπει να δημιουργήσετε έναν αγωγό TensorFlow. Ο αγωγός θα φορτώνει τα δεδομένα σε παρτίδες ή σε μικρά κομμάτια. Κάθε παρτίδα θα προωθείται στον αγωγό και θα είναι έτοιμη για την εκπαίδευση. Η δημιουργία ενός αγωγού είναι μια εξαιρετική λύση επειδή σας επιτρέπει να χρησιμοποιείτε παράλληλη υπολογιστική. Αυτό σημαίνει ότι το TensorFlow θα εκπαιδεύσει το μοντέλο σε πολλαπλές CPU. Αυτό επιταχύνει τον υπολογισμό και καθιστά πρακτική την εκπαίδευση μεγαλύτερων δικτύων.

Με λίγα λόγια: φορτώστε μικρά σύνολα δεδομένων στη μνήμη με pandas και χρησιμοποιήστε έναν αγωγό TensorFlow όταν τα δεδομένα είναι μεγάλα ή όταν θέλετε παράλληλη φόρτωση σε πολλαπλές CPU.

Πώς να δημιουργήσετε τον αγωγό TensorFlow

Ακολουθούν τα βήματα για τη δημιουργία ενός αγωγού TensorFlow:

Στο προηγούμενο παράδειγμα, προσθέσαμε χειροκίνητα τρεις τιμές για τα X_1 και X_2. Τώρα, θα δούμε πώς να φορτώσουμε δεδομένα στο TensorFlow:

Βήμα 1) Δημιουργήστε τα δεδομένα

Πρώτα απ 'όλα, ας χρησιμοποιήσουμε τη βιβλιοθήκη numpy για να δημιουργήσουμε δύο τυχαίες τιμές.

import numpy as np
x_input = np.random.sample((1,2))
print(x_input)

[[0.8835775 0.23766977]]

Βήμα 2) Δημιουργήστε το σύμβολο κράτησης θέσης

Όπως και στο προηγούμενο παράδειγμα, δημιουργούμε ένα σύμβολο κράτησης θέσης με το όνομα X. Πρέπει να καθορίσουμε ρητά το σχήμα του τανυστή. Σε περίπτωση που, θα φορτώσουμε έναν πίνακα με δύο μόνο τιμές. Μπορούμε να γράψουμε το σχήμα ως σχήμα=[1,2]

# using a placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')

Βήμα 3) Καθορίστε τη μέθοδο δεδομένων

Στη συνέχεια, πρέπει να ορίσουμε το σύνολο δεδομένων όπου μπορούμε να συμπληρώσουμε την τιμή του σύμβολο κράτησης θέσης x. Πρέπει να χρησιμοποιήσουμε τη μέθοδο tf.data.Dataset.from_tensor_slices

dataset = tf.data.Dataset.from_tensor_slices(x)

Βήμα 4) Δημιουργήστε τον αγωγό

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

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next()

Βήμα 5) Εκτελέστε τη λειτουργία

Το τελευταίο βήμα είναι παρόμοιο με το προηγούμενο παράδειγμα. Ξεκινάμε μια περίοδο λειτουργίας και εκτελούμε τον επαναλήπτη λειτουργίας. Τροφοδοτούμε το feed_dict με την τιμή που δημιουργείται από πολλοί. Αυτές οι δύο τιμές θα συμπληρώσουν το σύμβολο κράτησης θέσης x. Στη συνέχεια εκτελούμε το get_next για να εκτυπώσουμε το αποτέλεσμα.

with tf.Session() as sess:
    # feed the placeholder with data
    sess.run(iterator.initializer, feed_dict={ x: x_input }) 
    print(sess.run(get_next))
[0.8835775  0.23766978]

TensorFlow 1.x vs TensorFlow 2.x: Τι άλλαξε

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

Έννοια TensorFlow 1.χ TensorFlow 2.χ
Μοντέλο εκτέλεσης Ορίστε το γράφημα και, στη συνέχεια, εκτελέστε το Από προεπιλογή, το Eager, οι λειτουργίες εκτελούνται αμέσως.
Δεδομένα τροφοδοσίας tf.placeholder συν feed_dict Πέρασμα Python τιμές ή τανσόρους απευθείας
Εκτελούμενες λειτουργίες tf.Session().run() Κλήση της συνάρτησης, δεν απαιτείται συνεδρία
API υψηλού επιπέδου tf.estimator Κέρας, τφ. κεράς
Βελτιστοποίηση γραφημάτων Πάντα βασισμένο σε γραφήματα Δηλώστε συμμετοχή με τον διακοσμητή @tf.function
Επανάληψη ενός συνόλου δεδομένων make_initializable_iterator() Σκέτη Python βρόχος for πάνω από το σύνολο δεδομένων

Το παράδειγμα πολλαπλασιασμού, ξαναγραμμένο. Τρία βήματα και μια συνεδρία γίνονται μία γραμμή, επειδή η λειτουργία εκτελείται τη στιγμή που καλείται:

import tensorflow as tf

X_1 = tf.constant([1, 2, 3], dtype=tf.float32)
X_2 = tf.constant([4, 5, 6], dtype=tf.float32)

result = tf.multiply(X_1, X_2, name="multiply")
print(result.numpy())        # [ 4. 10. 18.]

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

import numpy as np
import tensorflow as tf

x_input = np.random.sample((1, 2))
dataset = tf.data.Dataset.from_tensor_slices(x_input)

for batch in dataset:
    print(batch.numpy())

Αν χρειάζεστε την ταχύτητα ενός μεταγλωττισμένου γραφήματος, τυλίξτε τη συνάρτηση σε @tf.function και TensorFlow. tracτο μετατρέπει αυτόματα σε ένα. Τα παλαιότερα σενάρια 1.x μπορούν επίσης να εκτελεστούν αμετάβλητα μέσω του χώρου ονομάτων tf.compat.v1, αν και αυτή η διαδρομή είναι μόνο για συντήρηση και δεν πρέπει να χρησιμοποιείται για νέα εργασία.

TensorFlow: Βασικά Συμπεράσματα και Code Αναφορά

  • Σημασία TensorFlow: TensorFlow είναι η πιο διάσημη βιβλιοθήκη βαθιάς μάθησης τα τελευταία χρόνια. Ένας επαγγελματίας που χρησιμοποιεί το TensorFlow μπορεί να δημιουργήσει οποιαδήποτε δομή βαθιάς μάθησης, όπως CNN, RNN ή απλό τεχνητό νευρωνικό δίκτυο.
  • Το TensorFlow χρησιμοποιείται κυρίως από ακαδημαϊκούς, νεοσύστατες επιχειρήσεις και μεγάλες εταιρείες. Google χρησιμοποιεί το TensorFlow σχεδόν σε όλα Google προϊόντα καθημερινής χρήσης, συμπεριλαμβανομένων Gmail, Φωτογραφία και Google Μηχανή αναζήτησης.
  • The Google Η ομάδα Brain ανέπτυξε το TensorFlow για να γεφυρώσει το χάσμα μεταξύ ερευνητών και προγραμματιστών προϊόντων. Το 2015, έκαναν το TensorFlow διαθέσιμο στο κοινό. Η δημοτικότητά του αυξάνεται ραγδαία. Σήμερα, το TensorFlow είναι η βιβλιοθήκη βαθιάς μάθησης με τα περισσότερα αποθετήρια στο GitHub.
  • Οι επαγγελματίες χρησιμοποιούν το TensorFlow επειδή αναπτύσσεται εύκολα σε μεγάλη κλίμακα, στο cloud, στο πρόγραμμα περιήγησης ή σε κινητές συσκευές με iOS και... Android.

Το TensorFlow λειτουργεί σε μια συνεδρία. Κάθε συνεδρία ορίζεται από ένα γράφημα με διαφορετικούς υπολογισμούς. Ένα απλό παράδειγμα μπορεί να είναι ο πολλαπλασιασμός σε αριθμό. Στο TensorFlow, απαιτούνται τρία βήματα:

  1. Ορίστε τη μεταβλητή
X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")
  1. Ορίστε τον υπολογισμό
multiply = tf.multiply(X_1, X_2, name = "multiply")
  1. Εκτελέστε τη λειτουργία
with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1: [1, 2, 3], X_2: [4, 5, 6]})
    print(result)

Μια συνήθης πρακτική στο TensorFlow είναι η δημιουργία ενός αγωγού για τη φόρτωση των δεδομένων. Αν ακολουθήσετε αυτά τα πέντε βήματα, θα μπορείτε να φορτώσετε δεδομένα στο TensorFLow:

  1. Δημιουργήστε τα δεδομένα
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
  1. Δημιουργήστε το σύμβολο κράτησης θέσης
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
  1. Καθορίστε τη μέθοδο δεδομένων
dataset = tf.data.Dataset.from_tensor_slices(x)
  1. Δημιουργήστε τον αγωγό
iterator = dataset.make_initializable_iterator()
get_next = iterator.get_next()
  1. Εκτελέστε το πρόγραμμα
with tf.Session() as sess:
    sess.run(iterator.initializer, feed_dict={x: x_input})
    print(sess.run(get_next))

Συχνές Ερωτήσεις

Το tf.placeholder ανήκει στο TensorFlow 1.x και αφαιρέθηκε στην έκδοση 2.0, η οποία εκτελείται γρήγορα και δεν χρειάζεται placeholders. Μεταβιβάστε τιμές απευθείας ή χρησιμοποιήστε το tf.compat.v1 για να εκτελέσετε παλαιότερα σενάρια αμετάβλητα.

Ένας τανυστής είναι ένας n-διάστατος πίνακας όπου κάθε στοιχείο μοιράζεται έναν τύπο δεδομένων. Ένας βαθμωτός αριθμός έχει βαθμό 0, ένα διάνυσμα έχει βαθμό 1, ένας πίνακας έχει βαθμό 2 και μια παρτίδα εικόνων έχει συνήθως βαθμό 4.

Το Keras είναι το API υψηλού επιπέδου για τον ορισμό και την εκπαίδευση μοντέλων, ενώ το TensorFlow είναι η υποκείμενη μηχανή υπολογισμού. Από την έκδοση 2.16, το TensorFlow διαθέτει το Keras 3, το οποίο μπορεί επίσης να εκτελεστεί σε JAX ή Py.Torch.

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

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

Συνοψίστε αυτήν την ανάρτηση με: