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

Advanced Vector Extensions ( AVX , även känt som Sandy Bridge New Extensions ) är tillägg till x86-instruktionsuppsättningsarkitekturen för mikroprocessorer från Intel och AMD som föreslagits av Intel i mars 2008 och först stöds av Intel med Sandy Bridge-processorns leverans under Q1 2011 och senare fortsatte av AMD med Bulldozer-processorn under tredje kvartalet 2011. AVX erbjuder 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ärerna 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 helt enkelt ignorera det genom att lägga till detta:

importera OS-modulen i din huvudsakliga programkod och ställ också in mappningsobjektet för den

# För att inaktivera varningsimport 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.

Rekommenderas

Fix: Minecraft svarar inte
Vad är en ansökan om registrering av digital-TV-mottagare och bör den tas bort?
Vad är FileRepMalware och ska du ta bort det