Fix: Din CPU understøtter instruktioner om, at denne TensorFlow Binary ikke blev kompileret til at bruge AVX2
Avancerede vektorudvidelser (AVX, også kendt somSandy Bridge Nye udvidelser) er udvidelser til x86 instruktions sætarkitektur til mikroprocessorer fra Intel og AMD foreslået af Intel i marts 2008 og først understøttet af Intel med Sandy Bridge-processorforsendelse i 1. kvartal 2011 og senere af AMD med Bulldozer-processorforsendelse i 3. kvartal 2011. AVX indeholder nye funktioner, nye instruktioner og et nyt kodningsskema.
Denne advarselsmeddelelse udskrives af det delte bibliotek af TensorFlow. Som meddelelsen indikerer, inkluderer det delte bibliotek ikke den slags instruktioner, som din CPU kan bruge.
Hvad forårsager denne advarsel?
Efter TensorFlow 1.6 bruger binærfilerne nu AVX-instruktioner, som muligvis ikke kører på ældre CPU'er længere. Så de ældre CPU'er vil ikke være i stand til at køre AVX, mens for de nyere skal brugeren bygge tensorflowet fra kilden til deres CPU. Nedenfor er alle de oplysninger, du har brug for at vide om denne særlige advarsel. Også en metode til at slippe af med denne advarsel til fremtidig brug.
Hvad gør AVX?
Navnlig introducerede AVX FMA (Fused multiply-add); hvilket er flydende punkt multiplicer-tilføj operation, og alt dette sker i et enkelt trin. Dette hjælper med at fremskynde mange operationer uden problemer. Det gør algebra-beregningen hurtigere og nemere at bruge, også dot-produkt, matrixformering, foldning osv. Og disse er alle de mest anvendte og grundlæggende operationer til hver maskinlæringstræning. CPU'erne, der understøtter AVX og FMA, vil være langt hurtigere end de ældre. Men advarslen siger, at din CPU understøtter AVX, så det er et godt punkt.
Hvorfor bruges det ikke som standard?
Det skyldes, at TensorFlow-standardfordelingen er bygget uden CPU-udvidelser. Ved CPU-udvidelser angives AVX, AVX2, FMA osv. Instruktionerne, der udløser dette problem, er ikke aktiveret som standard på de tilgængelige standard builds. Årsagerne til, at de ikke er aktiveret, er at gøre dette mere kompatibelt med så mange CPU'er som muligt. Også for at sammenligne disse udvidelser er de meget langsommere i CPU snarere end GPU. CPU bruges i mindre maskinlæring, mens brug af GPU forventes, når den bruges til en mellemstor eller storskalig maskinlæringstræning.
Fastsættelse af advarslen!
Disse advarsler er bare enkle beskeder. Formålet med disse advarsler er at informere dig om den indbyggede TensorFlow fra kilden. Når du bygger TensorFlow fra kilden, kan det være hurtigere på maskinen. Så alle disse advarsler fortæller dig om er opbygningen af TensorFlow fra kilden.
Hvis du har en GPU på din maskine, kan du ignorere disse advarsler fra AVX-support. Fordi de dyreste vil blive sendt på en GPU-enhed. Og hvis du ikke vil se denne fejl længere, kan du bare ignorere den ved at tilføje denne:
importere OS-modul i din hovedprogramkode, og indstil også kortlægningsobjektet til det
# For at deaktivere advarslen importer os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'
Men hvis du er på en Unix, brug derefter kommandoen eksport i bash shell
eksporter TF_CPP_MIN_LOG_LEVEL = 2
Men hvis du ikke har GPU, og du vil bruge din CPU så meget som muligt, skal du opbygge TensorFlow fra den kilde, der er optimeret til din CPU med AVX, AVX2 og FMA aktiveret her.