Fix: Din CPU stöder instruktioner om att denna TensorFlow Binary inte har kompilerats för att använda AVX2

Avancerade vektorförlängningar ( AVX, även känd som Sandy Bridge New Extensions ) är tillägg till instruktionsuppsättningsarkitekturen x86 för mikroprocessorer från Intel och AMD som föreslogs av Intel i mars 2008 och först stöds av Intel med Sandy Bridge-processorsändning under Q1 2011 och senare på av AMD med Bulldozer-processorns frakt under Q3 2011. AVX tillhandahåller nya funktioner, nya instruktioner och ett nytt kodningsschema.

Varningen visas i cmd

Detta varningsmeddelande skrivs ut av det delade biblioteket i TensorFlow. Som meddelandet indikerar inkluderar inte det delade biblioteket den typ av instruktioner som din CPU kan använda.

Vad orsakar denna varning?

Efter TensorFlow 1.6 använder binärerna nu AVX-instruktioner som kanske inte körs på äldre CPU: er längre. Så de äldre CPU: erna kan inte köra AVX, medan för de nyare måste användaren bygga tensorflödet från källan för sin CPU. Nedan följer all information du behöver veta om den här varningen. 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 punkts multiplikat-tilläggsoperationen, och hela denna operation utförs i ett enda steg. Detta hjälper till att påskynda många operationer utan problem. Det gör algebraberäkningen snabbare och lättare att använda, även dot-produkten, matrismultiplikation, upplösning osv. Och dessa är alla de mest använda och grundläggande operationerna för varje maskininlärningsträning. CPU: erna 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 poäng.

Intel AVX-teknik

Varför används det inte som standard?

Det beror på att TensorFlow-standarddistributionen är byggd utan CPU-tillägg. Med CPU-tillägg anges AVX, AVX2, FMA, etc. Instruktionerna som utlöser detta problem är inte aktiverade som standard på tillgängliga standardbyggnader. Anledningarna till att de inte är aktiverade är att göra detta mer kompatibelt med så många CPU: er 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 på småskaligt maskininlärning medan användningen av GPU förväntas när den används för en medelstor eller storskalig maskininlärningsträning.

Fixa 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 för dig är att bygga upp 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 ut på en GPU-enhet. Och om du inte vill se detta fel längre kan du helt enkelt ignorera det genom att lägga till detta:

importera OS-modulen i din huvudprogramkod och ställ även in mappningsobjektet för den

 # För att inaktivera varningsimporten os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Men om du är på en Unix, använd sedan exportkommandot 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 källan som är optimerad för din CPU med AVX, AVX2 och FMA aktiverad här.

Intressanta Artiklar