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

Avanserte vektorutvidelser ( AVX, også kjent som Sandy Bridge New Extensions ) er utvidelser til x86 instruksjonssettarkitektur for mikroprosessorer fra Intel og AMD foreslått av Intel i mars 2008 og først støttet av Intel med Sandy Bridge-prosessor frakt i Q1 2011 og senere videre av AMD med Bulldozer-prosessor frakt i 3. kvartal 2011. AVX gir nye funksjoner, nye instruksjoner og et nytt kodingsskjema.

Advarselen vises i cmd

Denne advarselen er skrevet ut av det delte biblioteket til TensorFlow. Som meldingen indikerer, inkluderer ikke det delte biblioteket slags instruksjoner som CPU-en din kan bruke.

Hva er årsaken til denne advarselen?

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

Hva gjør AVX?

Spesielt introduserte AVX FMA (Fused multiply-add); som er den flytende punkt multiplis-add-operasjonen, og denne operasjonen utføres på et enkelt trinn. Dette hjelper til med å fremskynde mange operasjoner uten problemer. Det gjør algebra-beregningen raskere og enkel å bruke, også prikkproduktet, matrisen multipliserer, sammenvikling 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 standarddistribusjon er bygget uten CPU-utvidelser. Av CPU-utvidelser heter det AVX, AVX2, FMA, etc. Instruksjonene som utløser dette problemet er ikke aktivert som standard på tilgjengelige standardbygg. Å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. Hensikten med disse advarslene er å informere deg om den innebygde TensorFlow fra kilden. Når du bygger TensorFlow fra kilden, kan det gå raskere på maskinen. Så alle disse advarslene forteller deg om er å bygge opp 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 ut på en GPU-enhet. Og hvis du ikke vil se denne feilen lenger, kan du bare ignorere den ved å legge til denne:

importer OS-modulen i hovedprogramkoden, og angi også kartleggingsobjektet for den

 # For å deaktivere advarselsimporten os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

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

 eksporter TF_CPP_MIN_LOG_LEVEL = 2 

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

Interessante Artikler