Fix: CPU-en din støtter instruksjoner om at denne TensorFlow Binary ikke ble kompilert for å bruke AVX2



Prøv Instrumentet Vårt For Å Eliminere Problemer

Avanserte vektorutvidelser ( AVX , også kjent som Sandy Bridge Nye utvidelser ) er utvidelser av x86-instruksjonsarkitekturen for mikroprosessorer fra Intel og AMD foreslått av Intel i mars 2008 og først støttet av Intel med Sandy Bridge-prosessorforsendelsen i Q1 2011 og senere av AMD med Bulldozer-prosessorforsendelsen i 3. kvartal 2011. AVX gir nye funksjoner, nye instruksjoner og et nytt kodeskjema.



Advarselen vises i cmd



Denne advarselen skrives ut av det delte biblioteket til TensorFlow. Som meldingen indikerer, inkluderer ikke det delte biblioteket instruksjonene som CPU-en din kan bruke.



Hva forårsaker denne advarselen?

Etter TensorFlow 1.6 bruker binærfilene nå AVX-instruksjoner som kanskje ikke kjører på eldre CPUer lenger. Så de eldre CPUene vil ikke kunne kjøre AVX, mens for de nyere må brukeren bygge tensorflow fra kilden for CPU-en. Nedenfor er all informasjonen du trenger å vite om denne advarselen. Også en metode for å bli kvitt denne advarselen for fremtidig bruk.

Hva gjør AVX?

Spesielt introduserte AVX FMA (Fused multiply-add); som er det flytende punktet multipliser-legg-operasjonen, og alt dette gjøres i ett enkelt trinn. Dette hjelper med å øke hastigheten på mange operasjoner uten problemer. Det gjør algebra-beregningen raskere og enklere å bruke, også punktproduktet, matriksmultiplikasjonen, konvolusjonen osv. Og dette er alle de mest brukte og grunnleggende operasjonene for hver maskinlæringstrening. CPUene som støtter AVX og FMA vil være langt raskere enn de eldre. Men advarselen sier at CPU-en din støtter AVX, så det er et godt poeng.

Intel AVX-teknologi



Hvorfor brukes den ikke som standard?

Det er fordi TensorFlow-standardfordelingen er bygget uten CPU-utvidelser. Ved CPU-utvidelser står det AVX, AVX2, FMA, etc. Instruksjonene som utløser dette problemet er ikke aktivert som standard på de tilgjengelige standardbygningene. Årsakene til at de ikke er aktivert, er å gjøre dette mer kompatibelt med så mange CPUer som mulig. For å sammenligne disse utvidelsene, er de mye tregere i CPU i stedet for GPU. CPU brukes på småskala maskinlæring mens bruk av GPU forventes når den brukes til en middels eller storskala maskinlæringstrening.

Fikse advarselen!

Disse advarslene er bare enkle meldinger. Formålet med disse advarslene er å informere deg om den innebygde TensorFlow fra kilden. Når du bygger TensorFlow fra kilden, kan den gå raskere på maskinen. Så alle disse advarslene forteller deg om er oppbyggingen av TensorFlow fra kilden.

Hvis du har en GPU på maskinen din, kan du ignorere disse advarslene fra AVX-støtte. Fordi de dyreste blir sendt på en GPU-enhet. Og hvis du ikke vil se denne feilen lenger, kan du bare ignorere den ved å legge til denne:

importere OS-modul i hovedprogramkoden og angi også kartleggingsobjektet for det

 # For å deaktivere advarselen   importer dem   os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Men hvis du er på en Unix , bruk deretter eksportkommandoen i bash shell

 eksporter TF_CPP_MIN_LOG_LEVEL = 2 

Men hvis du ikke har GPU, og du vil bruke CPUen din så mye som mulig, bør du bygge TensorFlow fra kilden optimalisert for CPUen din med AVX, AVX2 og FMA aktivert her .

2 minutter lest