Oplossing: uw CPU ondersteunt instructies dat dit TensorFlow Binary niet is gecompileerd om AVX2 te gebruiken
Geavanceerde vectoruitbreidingen (AVX, ook gekend alsSandy Bridge nieuwe extensies) zijn uitbreidingen van de x86-instructiesetarchitectuur voor microprocessors van Intel en AMD, voorgesteld door Intel in maart 2008 en voor het eerst ondersteund door Intel met de Sandy Bridge-processor die in het eerste kwartaal van 2011 werd geleverd en later door AMD met de levering van de Bulldozer-processor in het derde kwartaal van 2011. AVX biedt nieuwe functies, nieuwe instructies en een nieuw coderingsschema.
Dit waarschuwingsbericht wordt afgedrukt door de gedeelde bibliotheek van TensorFlow. Zoals het bericht aangeeft, bevat de gedeelde bibliotheek niet het soort instructies dat uw CPU zou kunnen gebruiken.
Wat veroorzaakt deze waarschuwing?
Na TensorFlow 1.6 gebruiken de binaire bestanden nu AVX-instructies die mogelijk niet meer op oudere CPU's draaien. Dus de oudere CPU's zullen de AVX niet kunnen draaien, terwijl voor de nieuwere de gebruiker de tensorflow vanaf de bron moet bouwen voor hun CPU. Hieronder vindt u alle informatie die u over deze specifieke waarschuwing moet weten. Ook een methode om van deze waarschuwing af te komen voor toekomstig gebruik.
Wat doet de AVX?
In het bijzonder introduceerde de AVX de FMA (Fused multiply-add); dat is de drijvende-komma multiply-add-bewerking, en deze bewerking wordt allemaal in een enkele stap uitgevoerd. Dit helpt om veel bewerkingen zonder problemen te versnellen. Het maakt de algebraberekening sneller en gemakkelijker in het gebruik, ook het puntproduct, matrixvermenigvuldiging, convolutie, enz. En dit zijn allemaal de meest gebruikte en basishandelingen voor elke machine learning-training. De CPU's die de AVX en FMA ondersteunen, zullen veel sneller zijn dan de oudere. Maar de waarschuwing stelt dat je CPU AVX ondersteunt, dus het is een goed punt.
Waarom wordt het niet standaard gebruikt?
Dat komt omdat de standaarddistributie van TensorFlow is gebouwd zonder de CPU-extensies. Bij CPU-extensies worden de AVX, AVX2, FMA, enz. vermeld. De instructies die dit probleem veroorzaken, zijn niet standaard ingeschakeld op de beschikbare standaardbuilds. De redenen waarom ze niet zijn ingeschakeld, is om dit meer compatibel te maken met zoveel mogelijk CPU's. Ook om deze extensies te vergelijken, zijn ze een stuk langzamer in CPU dan in GPU. CPU wordt gebruikt bij kleinschalige machine-learning, terwijl het gebruik van GPU wordt verwacht wanneer deze wordt gebruikt voor een middelgrote of grootschalige machine learning-training.
De waarschuwing verhelpen!
Deze waarschuwingen zijn slechts eenvoudige berichten. Het doel van deze waarschuwingen is om u vanaf de bron te informeren over de ingebouwde TensorFlow. Wanneer u de TensorFlow vanaf de bron bouwt, kan deze sneller op de machine zijn. Dus al deze waarschuwingen vertellen je over de opbouw van TensorFlow vanaf de bron.
Als u een GPU op uw computer heeft, kunt u deze waarschuwingen van AVX-ondersteuning negeren. Omdat de duurste worden verzonden op een GPU-apparaat. En als u deze fout niet meer wilt zien, kunt u deze gewoon negeren door dit toe te voegen:
importeer het OS-module in uw hoofdprogrammacode en stel ook het toewijzingsobject ervoor in
# Voor het uitschakelen van de waarschuwing import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
Maar als je een Unix, gebruik dan het export commando in bash shell
exporteer TF_CPP_MIN_LOG_LEVEL = 2
Maar als u geen GPU hebt en u uw CPU zoveel mogelijk wilt gebruiken, moet u TensorFlow bouwen vanuit de bron die is geoptimaliseerd voor uw CPU met AVX, AVX2 en FMA hier ingeschakeld.