Fix: CPU-en din støtter instruksjoner om at denne TensorFlow Binary ikke ble kompilert for å bruke AVX2
Avanserte vektorutvidelser (AVX, også kjent somSandy 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.
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 tensorstrømmen fra kilden for CPU-en. Nedenfor er all informasjon 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 flyt-punkt multipliser-add-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.
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å 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 enn 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 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 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 sett også kartleggingsobjektet for det
# For å deaktivere advarselen importer os 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.