Solució: la vostra CPU admet instruccions perquè aquest binari TensorFlow no s'hagi compilat per utilitzar AVX2



Proveu El Nostre Instrument Per Eliminar Problemes

Extensions vectorials avançades ( AVX , també conegut com Noves extensions de Sandy Bridge ) són extensions de l’arquitectura del conjunt d’instruccions x86 per a microprocessadors d’Intel i AMD proposades per Intel al març de 2008 i primer compatibles amb Intel amb el processador Sandy Bridge que s’envia el primer trimestre del 2011 i posteriorment AMD amb el processador Bulldozer que s’envia el 3T 2011. AVX proporciona noves funcions, noves instruccions i un nou esquema de codificació.



L'advertència es mostra en cmd



Aquest missatge d’advertència l’imprimeix la biblioteca compartida de TensorFlow. Com indica el missatge, la biblioteca compartida no inclou el tipus d’instruccions que podria utilitzar la vostra CPU.



Què causa aquest advertiment?

Després de TensorFlow 1.6, els binaris ara utilitzen instruccions AVX que potser ja no s’executaran en CPUs anteriors. Per tant, les CPU més antigues no podran executar l'AVX, mentre que per a les més noves, l'usuari ha de construir el flux de tensors des de la font de la seva CPU. A continuació es mostra tota la informació que necessiteu saber sobre aquest advertiment en particular. A més, un mètode per eliminar aquest advertiment per al seu ús futur.

Què fa l'AVX?

En particular, l'AVX va introduir el FMA (Fused multiply-add); que és l'operació de sumar multiplicador de coma flotant, i tota aquesta operació es fa en un sol pas. Això ajuda a accelerar moltes operacions sense cap problema. Fa que el càlcul de l’àlgebra sigui més ràpid i fàcil d’utilitzar, també el producte punt, el multiplicador de matriu, la convolució, etc. I aquestes són totes les operacions bàsiques i més utilitzades per a cada formació d’aprenentatge automàtic. Les CPU que admeten AVX i FMA seran molt més ràpides que les anteriors. Però l'advertiment indica que la vostra CPU és compatible amb AVX, de manera que és un bon punt.

Tecnologia Intel AVX



Per què no s’utilitza de manera predeterminada?

Això es deu al fet que la distribució per defecte de TensorFlow es crea sense les extensions de CPU. Per extensions de CPU, s’indiquen AVX, AVX2, FMA, etc. Les instruccions que activen aquest problema no s’activen per defecte a les versions predeterminades disponibles. Els motius pels quals no estan habilitats són perquè això sigui més compatible amb tantes CPU com sigui possible. A més, per comparar aquestes extensions, són molt més lentes en CPU que en GPU. La CPU s’utilitza en l’aprenentatge automàtic a petita escala, mentre que s’espera l’ús de GPU quan s’utilitza per a una formació d’aprenentatge automàtic a mitja o gran escala.

S'està solucionant l'avís.

Aquestes advertències són només missatges senzills. L’objectiu d’aquestes advertències és informar-vos sobre el TensorFlow construït des de la font. Quan creeu TensorFlow des de la font, pot ser més ràpid a la màquina. Així, doncs, totes aquestes advertències us expliquen sobre l’acumulació de TensorFlow des de la font.

Si teniu una GPU a la vostra màquina, podeu ignorar aquestes advertències del suport AVX. Com que els més cars s’enviaran en un dispositiu GPU. I si voleu que ja no vegeu aquest error, només podeu ignorar-lo afegint-hi:

importeu el fitxer Mòdul del sistema operatiu al codi principal del programa i també definiu-ne l’objecte de mapatge

 # Per desactivar l'avís   importeu-los   os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Però si esteu en un Unix i, a continuació, utilitzeu l'ordre d'exportació a l'intèrpret d'ordres bash

 exporta TF_CPP_MIN_LOG_LEVEL = 2 

Però si no teniu GPU i voleu utilitzar la vostra CPU tant com sigui possible, hauríeu de crear TensorFlow des de la font optimitzada per a la vostra CPU amb AVX, AVX2 i FMA activats aquí .

2 minuts de lectura