Επιδιόρθωση: Η CPU σας υποστηρίζει οδηγίες ότι αυτό το TensorFlow Binary δεν είχε μεταγλωττιστεί για χρήση του AVX2

Οι Advanced Vector Extensions ( AVX , γνωστές και ως Sandy Bridge New Extensions ) είναι επεκτάσεις της αρχιτεκτονικής σετ εντολών x86 για μικροεπεξεργαστές από Intel και AMD που προτάθηκαν από την Intel τον Μάρτιο του 2008 και υποστηρίχθηκαν για πρώτη φορά από την Intel με την αποστολή επεξεργαστή Sandy Bridge το πρώτο τρίμηνο του 2011 και αργότερα ενεργοποιείται από την AMD με την αποστολή επεξεργαστή Bulldozer το τρίτο τρίμηνο του 2011. Το AVX παρέχει νέες δυνατότητες, νέες οδηγίες και ένα νέο σχήμα κωδικοποίησης.

Αυτό το προειδοποιητικό μήνυμα εκτυπώνεται από την κοινόχρηστη βιβλιοθήκη του TensorFlow. Όπως δείχνει το μήνυμα, η κοινόχρηστη βιβλιοθήκη δεν περιλαμβάνει το είδος των οδηγιών που θα μπορούσε να χρησιμοποιήσει η CPU σας.

Τι προκαλεί αυτήν την προειδοποίηση;

Μετά το TensorFlow 1.6, τα δυαδικά αρχεία χρησιμοποιούν πλέον οδηγίες AVX που ενδέχεται να μην εκτελούνται πλέον σε παλαιότερους επεξεργαστές. Έτσι, οι παλαιότεροι επεξεργαστές δεν θα είναι σε θέση να εκτελέσουν το AVX, ενώ για τους νεότερους, ο χρήστης πρέπει να δημιουργήσει τη ροή tensorflow από την πηγή για τον CPU τους. Παρακάτω είναι όλες οι πληροφορίες που πρέπει να γνωρίζετε σχετικά με αυτήν τη συγκεκριμένη προειδοποίηση. Επίσης, μια μέθοδος για την απαλλαγή αυτής της προειδοποίησης για μελλοντική χρήση.

Τι κάνει το AVX;

Συγκεκριμένα, το AVX παρουσίασε το FMA (Fused multiply-add). που είναι η λειτουργία πολλαπλής προσθήκης κινητής υποδιαστολής, και αυτή η λειτουργία γίνεται σε ένα μόνο βήμα Αυτό βοηθά στην επιτάχυνση πολλών λειτουργιών χωρίς κανένα πρόβλημα. Κάνει τον υπολογισμό της άλγεβρας πιο γρήγορο και εύκολο στη χρήση, επίσης το dot-product, το matrix multiply, το convolution, κ.λπ. Και αυτές είναι όλες οι πιο χρησιμοποιούμενες και βασικές λειτουργίες για κάθε εκπαίδευση μηχανικής μάθησης. Οι CPU που υποστηρίζουν το AVX και το FMA θα είναι πολύ ταχύτεροι από τους παλαιότερους. Ωστόσο, η προειδοποίηση αναφέρει ότι η CPU σας υποστηρίζει AVX, οπότε είναι ένα καλό σημείο.

Γιατί δεν χρησιμοποιείται από προεπιλογή;

Αυτό συμβαίνει επειδή η προεπιλεγμένη διανομή TensorFlow δημιουργείται χωρίς επεκτάσεις CPU. Με επεκτάσεις CPU δηλώνει τα AVX, AVX2, FMA, κ.λπ. Οι οδηγίες που ενεργοποιούν αυτό το ζήτημα δεν είναι ενεργοποιημένες από προεπιλογή στις διαθέσιμες προεπιλεγμένες εκδόσεις. Οι λόγοι για τους οποίους δεν είναι ενεργοποιημένοι είναι να γίνει αυτό πιο συμβατό με όσο το δυνατόν περισσότερους επεξεργαστές. Επίσης, για να συγκρίνουν αυτές τις επεκτάσεις, είναι πολύ πιο αργές στην CPU παρά στην GPU. Η CPU χρησιμοποιείται στη μηχανική εκμάθηση μικρής κλίμακας ενώ η χρήση της GPU αναμένεται όταν χρησιμοποιείται για μια μεσαία ή μεγάλης κλίμακας εκπαίδευση μηχανικής μάθησης.

Διορθώνοντας την προειδοποίηση!

Αυτές οι προειδοποιήσεις είναι απλά μηνύματα. Ο σκοπός αυτών των προειδοποιήσεων είναι να σας ενημερώσει για το ενσωματωμένο TensorFlow από την πηγή. Όταν δημιουργείτε το TensorFlow από την πηγή, μπορεί να είναι πιο γρήγορο στο μηχάνημα. Επομένως, όλες αυτές οι προειδοποιήσεις σας λένε είναι η δημιουργία TensorFlow από την πηγή.

Εάν έχετε GPU στο μηχάνημά σας, τότε μπορείτε να αγνοήσετε αυτές τις προειδοποιήσεις από την υποστήριξη AVX. Επειδή τα πιο ακριβά θα αποστέλλονται σε μια συσκευή GPU. Και αν δεν θέλετε πλέον να βλέπετε αυτό το σφάλμα, μπορείτε απλά να το αγνοήσετε προσθέτοντας αυτό:

εισαγάγετε τη λειτουργική μονάδα OS στον κύριο κωδικό προγράμματος και ορίστε επίσης το αντικείμενο χαρτογράφησης για αυτό

# Για απενεργοποίηση της εισαγωγής προειδοποίησης os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Αλλά αν βρίσκεστε σε Unix , χρησιμοποιήστε την εντολή εξαγωγής στο bash shell

εξαγωγή TF_CPP_MIN_LOG_LEVEL = 2

Αλλά αν δεν έχετε GPU και θέλετε να χρησιμοποιήσετε την CPU σας όσο το δυνατόν περισσότερο, θα πρέπει να δημιουργήσετε το TensorFlow από την πηγή που έχει βελτιστοποιηθεί για την CPU σας με ενεργοποιημένα τα AVX, AVX2 και FMA εδώ.