Fix: Ihre CPU unterstützt Anweisungen, dass diese TensorFlow-Binärdatei nicht für die Verwendung von AVX2 kompiliert wurde

Advanced Vector Extensions ( AVX, auch bekannt als Sandy Bridge New Extensions ) sind Erweiterungen der x86-Befehlssatzarchitektur für Mikroprozessoren von Intel und AMD, die von Intel im März 2008 vorgeschlagen und erstmals von Intel mit dem Sandy Bridge-Prozessor unterstützt wurden, der im ersten Quartal 2011 und später ausgeliefert wurde von AMD mit dem Bulldozer-Prozessor im dritten Quartal 2011 ausgeliefert. AVX bietet neue Funktionen, neue Anweisungen und ein neues Codierungsschema.

Die Warnung wird in cmd angezeigt

Diese Warnmeldung wird von der gemeinsam genutzten Bibliothek von TensorFlow gedruckt. Wie aus der Meldung hervorgeht, enthält die gemeinsam genutzte Bibliothek keine Anweisungen, die Ihre CPU verwenden könnte.

Was verursacht diese Warnung?

Nach TensorFlow 1.6 verwenden die Binärdateien nun AVX-Anweisungen, die möglicherweise nicht mehr auf älteren CPUs ausgeführt werden. Daher können die älteren CPUs AVX nicht ausführen, während die neueren den Tensorflow aus der Quelle für ihre CPU erstellen müssen. Nachfolgend finden Sie alle Informationen, die Sie zu dieser Warnung benötigen. Außerdem eine Methode zum Entfernen dieser Warnung für die zukünftige Verwendung.

Was macht der AVX?

Insbesondere hat die AVX die FMA (Fused Multiplly Add) eingeführt; Dies ist die Gleitkomma-Multiplikations-Additions-Operation, und dies alles geschieht in einem einzigen Schritt. Dies beschleunigt viele Vorgänge problemlos. Dies macht die Algebra-Berechnung schneller und einfacher, auch das Skalarprodukt, die Matrixmultiplikation, die Faltung usw. Dies sind die am häufigsten verwendeten und grundlegenden Operationen für jedes maschinelle Lerntraining. Die CPUs, die AVX und FMA unterstützen, sind weitaus schneller als die älteren. In der Warnung wird jedoch darauf hingewiesen, dass Ihre CPU AVX unterstützt. Dies ist also ein guter Punkt.

Intel AVX-Technologie

Warum wird es nicht standardmäßig verwendet?

Dies liegt daran, dass die TensorFlow-Standardverteilung ohne die CPU-Erweiterungen erstellt wird. Nach CPU-Erweiterungen werden AVX, AVX2, FMA usw. angegeben. Die Anweisungen, die dieses Problem auslösen, sind in den verfügbaren Standardbuilds nicht standardmäßig aktiviert. Der Grund, warum sie nicht aktiviert sind, ist, dass dies mit so vielen CPUs wie möglich kompatibel ist. Um diese Erweiterungen zu vergleichen, sind sie in der CPU viel langsamer als in der GPU. CPU wird beim maschinellen Lernen im kleinen Maßstab verwendet, während die Verwendung einer GPU erwartet wird, wenn sie für ein maschinelles Lernen im mittleren oder großen Maßstab verwendet wird.

Behebung der Warnung!

Diese Warnungen sind nur einfache Meldungen. Der Zweck dieser Warnungen besteht darin, Sie über den TensorFlow aus der Quelle zu informieren. Wenn Sie den TensorFlow aus der Quelle erstellen, kann er auf der Maschine schneller sein. Alle diese Warnungen beziehen sich auf den Aufbau von TensorFlow aus der Quelle.

Wenn Sie eine GPU auf Ihrem Computer haben, können Sie diese Warnungen vom AVX-Support ignorieren. Weil die teuersten auf einem GPU-Gerät versandt werden. Und wenn Sie diesen Fehler nicht mehr sehen möchten, können Sie ihn einfach ignorieren, indem Sie Folgendes hinzufügen:

Importieren Sie das OS-Modul in Ihren Hauptprogrammcode und stellen Sie auch das Mapping-Objekt dafür ein

 # Zum Deaktivieren des Warnungsimports os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Wenn Sie jedoch unter Unix arbeiten, verwenden Sie den Befehl export in der Bash-Shell

 export TF_CPP_MIN_LOG_LEVEL = 2 

Wenn Sie jedoch keine GPU haben und Ihre CPU so oft wie möglich nutzen möchten, sollten Sie TensorFlow aus der für Ihre CPU optimierten Quelle erstellen, wobei AVX, AVX2 und FMA hier aktiviert sind.

Interessante Artikel