Fix: Din CPU stöder instruktioner om att den här TensorFlow-binären inte kompilerades för att använda AVX2
Avancerade vektortillägg (AVX, också känd somSandy Bridge Nya tillägg) är förlängningar av x86-instruktionsuppsättningsarkitekturen för mikroprocessorer från Intel och AMD som föreslogs av Intel i mars 2008 och först stöddes av Intel med Sandy Bridge-processorsändning under Q1 2011 och senare av AMD med Bulldozer-processorsändning under Q3 2011. AVX ger nya funktioner, nya instruktioner och ett nytt kodningsschema.
Detta varningsmeddelande skrivs ut av det delade biblioteket i TensorFlow. Som meddelandet anger innehåller det delade biblioteket inte den typ av instruktioner som din CPU kan använda.
Vad orsakar denna varning?
Efter TensorFlow 1.6 använder binärfilerna nu AVX-instruktioner som kanske inte körs på äldre processorer längre. Så de äldre processorerna kommer inte att kunna köra AVX, medan för de nyare behöver användaren bygga tensorflödet från källan till sin CPU. Nedan finns all information du behöver veta om den här varningen. Också en metod för att bli av med denna varning för framtida användning.
Vad gör AVX?
I synnerhet introducerade AVX FMA (Fused multiply-add); vilket är den flytande punkten multiplicera-lägg operation, och allt detta görs i ett enda steg. Detta hjälper till att påskynda många operationer utan problem. Det gör algebraberäkningen snabbare och enklare att använda, även punktprodukten, multiplikation av matriser, faltning osv. Och dessa är alla de mest använda och grundläggande operationerna för varje maskininlärningsträning. Processorerna som stöder AVX och FMA kommer att vara mycket snabbare än de äldre. Men varningen säger att din CPU stöder AVX, så det är en bra punkt.
Varför används den inte som standard?
Det beror på att TensorFlow-standarddistributionen byggs utan CPU-tillägg. Genom CPU-tillägg anges AVX, AVX2, FMA, etc. Instruktionerna som utlöser detta problem är inte aktiverade som standard på tillgängliga standardversioner. Anledningarna till att de inte är aktiverade är att göra detta mer kompatibelt med så många processorer som möjligt. För att jämföra dessa tillägg är de mycket långsammare i CPU snarare än GPU. CPU används i småskalig maskininlärning medan användning av GPU förväntas när den används för en medelstor eller storskalig maskininlärningsträning.
Fixar varningen!
Dessa varningar är bara enkla meddelanden. Syftet med dessa varningar är att informera dig om den inbyggda TensorFlow från källan. När du bygger TensorFlow från källan kan det gå snabbare på maskinen. Så alla dessa varningar berättar om är uppbyggnaden av TensorFlow från källan.
Om du har en GPU på din maskin kan du ignorera dessa varningar från AVX-support. Eftersom de dyraste kommer att skickas på en GPU-enhet. Och om du inte vill se detta fel längre kan du bara ignorera det genom att lägga till det här:
importera OS-modul i din huvudprogramkod och ställ in mappningsobjektet för det
# För att inaktivera varningen importera os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'
Men om du är på en Unix, använd sedan kommandot export i bash shell
exportera TF_CPP_MIN_LOG_LEVEL = 2
Men om du inte har GPU, och du vill använda din CPU så mycket som möjligt, bör du bygga TensorFlow från den källa som är optimerad för din CPU med AVX, AVX2 och FMA aktiverat här.