Correzione: la CPU supporta le istruzioni che questo binario TensorFlow non è stato compilato per utilizzare AVX2

Advanced Vector Extensions ( AVX, noto anche come Sandy Bridge New Extensions ) sono estensioni dell'architettura del set di istruzioni x86 per microprocessori di Intel e AMD proposti da Intel nel marzo 2008 e inizialmente supportati da Intel con la spedizione del processore Sandy Bridge nel primo trimestre 2011 e versioni successive su AMD con la consegna del processore Bulldozer nel terzo trimestre del 2011. AVX offre nuove funzionalità, nuove istruzioni e un nuovo schema di codifica.

L'avviso è mostrato in cmd

Questo messaggio di avviso viene stampato dalla libreria condivisa di TensorFlow. Come indica il messaggio, la libreria condivisa non include il tipo di istruzioni che la CPU potrebbe utilizzare.

Quali sono le cause di questo avviso?

Dopo TensorFlow 1.6, i binari ora usano le istruzioni AVX che potrebbero non funzionare più su CPU più vecchie. Pertanto, le CPU più vecchie non saranno in grado di eseguire l'AVX, mentre per quelle più recenti, l'utente dovrà creare il tensorflow dall'origine per la propria CPU. Di seguito troverai tutte le informazioni che devi sapere su questo particolare avviso. Inoltre, un metodo per sbarazzarsi di questo avviso per un uso futuro.

Cosa fa l'AVX?

In particolare, l'AVX ha introdotto l'FMA (Fused multiply-add); che è l'operazione di aggiunta multipla in virgola mobile e questa operazione viene eseguita in un unico passaggio. Questo aiuta ad accelerare molte operazioni senza alcun problema. Rende il calcolo dell'algebra più veloce e facile da usare, anche il punto-prodotto, la moltiplicazione della matrice, la convoluzione, ecc. E queste sono tutte le operazioni più utilizzate e di base per ogni addestramento di apprendimento automatico. Le CPU che supportano AVX e FMA saranno molto più veloci di quelle precedenti. Ma l'avviso afferma che la tua CPU supporta AVX, quindi è un buon punto.

Tecnologia Intel AVX

Perché non viene utilizzato per impostazione predefinita?

Questo perché la distribuzione predefinita di TensorFlow è costruita senza le estensioni della CPU. Con le estensioni della CPU indica AVX, AVX2, FMA, ecc. Le istruzioni che attivano questo problema non sono abilitate per impostazione predefinita sui build predefiniti disponibili. Il motivo per cui non sono abilitati è di renderlo più compatibile con quante più CPU possibile. Inoltre, per confrontare queste estensioni, sono molto più lente nella CPU piuttosto che nella GPU. La CPU viene utilizzata sull'apprendimento automatico su piccola scala mentre è previsto l'uso della GPU quando viene utilizzato per un addestramento di apprendimento automatico su media o grande scala.

Correzione dell'avvertimento!

Questi avvisi sono solo semplici messaggi. Lo scopo di questi avvisi è di informarti sul TensorFlow costruito dalla fonte. Quando si genera TensorFlow dall'origine, può essere più veloce sulla macchina. Quindi tutti questi avvertimenti di cui ti stanno parlando è l'accumulo di TensorFlow dalla fonte.

Se hai una GPU sul tuo computer, puoi ignorare questi avvisi dal supporto AVX. Perché quelli più costosi verranno spediti su un dispositivo GPU. E se non vuoi più vedere questo errore, puoi semplicemente ignorarlo aggiungendo questo:

importare il modulo OS nel codice del programma principale e impostare anche l'oggetto di mappatura per esso

 # Per disabilitare l'avviso import os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Ma se sei su un Unix, usa il comando export nella shell bash

 esporta TF_CPP_MIN_LOG_LEVEL = 2 

Ma se non hai GPU e vuoi usare la tua CPU il più possibile, dovresti costruire TensorFlow dalla fonte ottimizzata per la tua CPU con AVX, AVX2 e FMA abilitati qui.

Articoli Interessanti