Remediere: CPU-ul dvs. acceptă instrucțiuni conform cărora acest TensorFlow Binary nu a fost compilat pentru a utiliza AVX2

Advanced Vector Extensions ( AVX , cunoscut și sub numele de Sandy Bridge New Extensions ) sunt extensii la arhitectura setului de instrucțiuni x86 pentru microprocesoare de la Intel și AMD propuse de Intel în martie 2008 și susținute mai întâi de Intel cu procesorul Sandy Bridge livrat în primul trimestru al anului 2011 și ulterior de AMD cu procesorul Bulldozer livrat în trimestrul III 2011. AVX oferă noi caracteristici, instrucțiuni noi și o nouă schemă de codare.

Acest mesaj de avertizare este tipărit de biblioteca partajată a TensorFlow. După cum indică mesajul, biblioteca partajată nu include tipul de instrucțiuni pe care CPU le-ar putea folosi.

Ce cauzează acest avertisment?

După TensorFlow 1.6, binarele folosesc acum instrucțiuni AVX care ar putea să nu mai ruleze pe procesoare mai vechi. Deci, CPU-urile mai vechi nu vor putea rula AVX, în timp ce pentru cele mai noi, utilizatorul trebuie să construiască tensorul de la sursă pentru CPU-ul lor. Mai jos sunt toate informațiile pe care trebuie să le cunoașteți despre acest avertisment. De asemenea, o metodă pentru a scăpa de acest avertisment pentru o utilizare viitoare.

Ce face AVX-ul?

În special, AVX a introdus FMA (Fused multiply-add); care este operația de multiplicare-adăugare în virgulă mobilă și această operațiune se face într-un singur pas. Acest lucru ajută la accelerarea multor operațiuni fără nicio problemă. Face calculul algebrei o utilizare mai rapidă și mai ușoară, de asemenea produsul punct, multiplicarea matricei, convoluția etc. Și acestea sunt toate cele mai utilizate și operațiuni de bază pentru fiecare antrenament de învățare automată. CPU-urile care acceptă AVX și FMA vor fi mult mai rapide decât cele mai vechi. Dar avertismentul afirmă că procesorul dvs. acceptă AVX, deci este un punct bun.

De ce nu este folosit în mod implicit?

Acest lucru se datorează faptului că distribuția implicită TensorFlow este construită fără extensiile CPU. Prin extensiile CPU se indică AVX, AVX2, FMA etc. Instrucțiunile care declanșează această problemă nu sunt activate în mod implicit în versiunile implicite disponibile. Motivele pentru care nu sunt activate este de a face acest lucru mai compatibil cu cât mai multe procesoare posibil. De asemenea, pentru a compara aceste extensii, acestea sunt mult mai lente în procesor decât în ​​GPU. Procesorul este utilizat la învățarea automată la scară mică, în timp ce utilizarea GPU este așteptată atunci când este utilizată pentru o formare de învățare automată la scară medie sau mare.

Remedierea avertismentului!

Aceste avertismente sunt doar mesaje simple. Scopul acestor avertismente este de a vă informa despre TensorFlow construit din sursă. Când construiți TensorFlow de la sursă, acesta poate fi mai rapid pe mașină. Deci, toate aceste avertismente vă spun despre acumularea TensorFlow de la sursă.

Dacă aveți un GPU pe mașină, atunci puteți ignora aceste avertismente de la suportul AVX. Deoarece cele mai scumpe vor fi expediate pe un dispozitiv GPU. Și dacă doriți să nu mai vedeți această eroare, pur și simplu o puteți ignora adăugând acest lucru:

importați modulul OS în codul principal al programului și setați, de asemenea, obiectul de mapare pentru acesta

# Pentru dezactivarea importului de avertisment os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Dar dacă sunteți pe un Unix , atunci utilizați comanda de export în shell bash

export TF_CPP_MIN_LOG_LEVEL = 2

Dar dacă nu aveți GPU și doriți să utilizați CPU cât mai mult posibil, ar trebui să construiți TensorFlow din sursa optimizată pentru CPU cu AVX, AVX2 și FMA activate aici.