Fix: Ihre CPU unterstützt Anweisungen, dass diese TensorFlow-Binärdatei nicht für die Verwendung von AVX2 kompiliert wurde
Erweiterte Vektorerweiterungen (AVX, auch bekannt alsSandy Bridge Neue Erweiterungen) sind Erweiterungen der x86-Befehlssatzarchitektur für Mikroprozessoren von Intel und AMD, die von Intel im März 2008 vorgeschlagen und zuerst von Intel mit der Auslieferung des Sandy Bridge-Prozessors im ersten Quartal 2011 und später von AMD mit der Auslieferung des Bulldozer-Prozessors im dritten Quartal 2011 unterstützt wurden. AVX bietet neue Funktionen, neue Anweisungen und ein neues Codierungsschema.
Diese Warnmeldung wird von der gemeinsam genutzten Bibliothek von TensorFlow gedruckt. Wie die Meldung anzeigt, enthält die gemeinsam genutzte Bibliothek nicht die Art von Anweisungen, die Ihre CPU verwenden könnte.
Was verursacht diese Warnung?
Nach TensorFlow 1.6 verwenden die Binärdateien jetzt AVX-Anweisungen, die auf älteren CPUs möglicherweise nicht mehr ausgeführt werden. Daher können die älteren CPUs den AVX nicht ausführen, während der Benutzer bei den neueren den Tensorflow aus der Quelle für seine CPU erstellen muss. Nachfolgend finden Sie alle Informationen, die Sie zu dieser speziellen Warnung wissen müssen. Außerdem eine Methode zum Entfernen dieser Warnung für die zukünftige Verwendung.
Was macht der AVX?
Insbesondere führte die AVX die FMA (Fused Multiply-Add) ein; Dies ist die Gleitkomma-Multiply-Add-Operation, und diese gesamte Operation wird in einem einzigen Schritt ausgeführt. Dies hilft, viele Vorgänge problemlos zu beschleunigen. Es macht die Algebra-Berechnung schneller und einfacher, auch das Punktprodukt, die Matrixmultiplikation, die Faltung usw. Und dies sind alle die am häufigsten verwendeten und grundlegenden Operationen für jede Ausbildung zum maschinellen Lernen. Die CPUs, die AVX und FMA unterstützen, werden viel schneller sein als die älteren. Die Warnung besagt jedoch, dass Ihre CPU AVX unterstützt. Dies ist also ein guter Punkt.
Warum wird es nicht standardmäßig verwendet?
Das liegt daran, dass die TensorFlow-Standardverteilung ohne die CPU-Erweiterungen erstellt wird. Bei CPU-Erweiterungen werden AVX, AVX2, FMA usw. angegeben. Die Anweisungen, die dieses Problem auslösen, sind standardmäßig auf den verfügbaren Standard-Builds nicht aktiviert. Der Grund, warum sie nicht aktiviert sind, besteht darin, die Kompatibilität mit so vielen CPUs wie möglich zu verbessern. Um diese Erweiterungen zu vergleichen, sind sie in der CPU viel langsamer als in der GPU. Die CPU wird für das maschinelle Lernen im kleinen Maßstab verwendet, während die Verwendung von GPU erwartet wird, wenn es für ein mittleres oder großes maschinelles Lernen verwendet wird.
Beheben der Warnung!
Diese Warnungen sind nur einfache Nachrichten. Der Zweck dieser Warnungen besteht darin, Sie über den erstellten TensorFlow aus der Quelle zu informieren. Wenn Sie TensorFlow aus der Quelle erstellen, kann es auf der Maschine schneller sein. Alle diese Warnungen erzählen Ihnen also, dass TensorFlow aus der Quelle aufgebaut wird.
Wenn Sie eine GPU auf Ihrem Computer haben, können Sie diese Warnungen des AVX-Supports ignorieren. Denn die teuersten werden auf einem GPU-Gerät versandt. Und wenn Sie diesen Fehler nicht mehr sehen möchten, können Sie ihn einfach ignorieren, indem Sie Folgendes hinzufügen:
importieren Sie die OS-Modul in Ihrem Hauptprogrammcode und legen Sie auch das Mapping-Objekt dafür fest
# Zum Deaktivieren der Warnung Importieren von OS os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
Aber wenn Sie auf einem sind Unix, dann verwenden Sie den Exportbefehl in der Bash-Shell
exportieren TF_CPP_MIN_LOG_LEVEL=2
Wenn Sie jedoch keine GPU haben und Ihre CPU so weit 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.