Javítás: A CPU támogatja az utasításokat, amelyek szerint ezt a TensorFlow bináris fájlt nem az AVX2 használatához fordították le



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

Advanced Vector Extensions ( AVX , más néven Sandy Bridge Új kiterjesztések ) az Intel és az AMD mikroprocesszorainak x86 utasításkészlet-architektúrájának az Intel által 2008 márciusában javasolt kiterjesztései, amelyeket először az Intel támogatott a Sandy Bridge processzorral 2011 első negyedévében, majd később az AMD a Bulldozer processzorral 2011 harmadik negyedévében. AVX új funkciókat, új utasításokat és új kódolási sémát biztosít.



A figyelmeztetés cmd-ben jelenik meg



Ezt a figyelmeztető üzenetet a TensorFlow megosztott könyvtár nyomtatja ki. Amint az üzenet jelzi, a megosztott könyvtár nem tartalmaz olyan utasításokat, amelyeket a CPU használhatna.



Mi okozza ezt a figyelmeztetést?

A TensorFlow 1.6 után a bináris fájlok most AVX utasításokat használnak, amelyek esetleg már nem futnak régebbi CPU-kon. Tehát a régebbi CPU-k nem lesznek képesek futtatni az AVX-t, míg az újabbakhoz a felhasználónak a forrásból ki kell építenie a processzorának a tensorflow-ját. Az alábbiakban megtalálható minden információ, amelyet tudnia kell erről a figyelmeztetésről. Ezenkívül egy módszer a figyelmeztetés későbbi felhasználásra való megszabadulására.

Mit csinál az AVX?

Különösen az AVX vezette be az FMA-t (Fused multiply-add); amely a lebegőpontos szorzás-összeadás művelet, és ez az egész művelet egyetlen lépésben történik. Ez problémamentesen segít gyorsítani számos műveletet. Gyorsabbá és egyszerűbbé teszi az algebra kiszámítását, a dot-szorzatot, a mátrixszorzást, a konvolúciót stb. És ezek mind a gépi tanulási tréningek leggyakrabban használt és alapvető műveletei. Az AVX-et és az FMA-t támogató CPU-k sokkal gyorsabbak lesznek, mint a régebbi. De a figyelmeztetés azt állítja, hogy a CPU támogatja az AVX-t, ezért ez egy jó pont.

Intel AVX technológia



Miért nem használják alapértelmezés szerint?

Ennek oka, hogy a TensorFlow alapértelmezett terjesztés a CPU kiterjesztések nélkül épül fel. A CPU kiterjesztésekkel megadja az AVX, AVX2, FMA stb. Utasításokat. A problémát kiváltó utasítások alapértelmezés szerint nincsenek engedélyezve a rendelkezésre álló alapértelmezett buildeknél. Nem engedélyezésük oka az, hogy ezt minél több CPU-val kompatibilisebbé tegyék. Ezen kiterjesztések összehasonlításához sokkal lassabbak a processzorokban, mint a GPU-ban. A CPU-t a kis léptékű gépi tanuláshoz használják, míg a GPU-t akkor várják el, ha közepes vagy nagyméretű gépi tanuláshoz használják.

A figyelmeztetés kijavítása!

Ezek a figyelmeztetések csak egyszerű üzenetek. Ezeknek a figyelmeztetéseknek az a célja, hogy tájékoztassák Önt a beépített TensorFlow forrásról. Amikor a TensorFlow-t a forrásból készíti, gyorsabb lehet a gépen. Tehát ezek a figyelmeztetések a TensorFlow forrásból történő felépítéséről szólnak.

Ha GPU-ja van a gépén, akkor figyelmen kívül hagyhatja ezeket az figyelmeztetéseket az AVX támogatásból. Mivel a legdrágábbakat GPU-eszközre küldik. És ha már nem szeretné látni ezt a hibát, egyszerűen figyelmen kívül hagyhatja ezt a hozzáadást:

importálja a OS modul a fő programkódban, és állítsa be hozzá a leképezési objektumot is

 # A figyelmeztetés letiltásához   importálja őket   os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

De ha a Unix , majd használja az export parancsot a bash shellben

 export TF_CPP_MIN_LOG_LEVEL = 2 

De ha nincs GPU-ja, és a lehető legnagyobb mértékben szeretné használni a CPU-t, akkor a TensorFlow-t a CPU-ra optimalizált forrásból kell felépítenie, engedélyezve az AVX, AVX2 és FMA funkciókat itt .

2 perc olvasás