Solución: su CPU admite instrucciones de que este binario TensorFlow no se compiló para usar AVX2

Advanced Vector Extensions ( AVX, también conocido como Sandy Bridge New Extensions ) son extensiones de la arquitectura del conjunto de instrucciones x86 para microprocesadores de Intel y AMD propuestas por Intel en marzo de 2008 y primero compatibles con Intel con el envío del procesador Sandy Bridge en el primer trimestre de 2011 y posteriores activado por AMD con el procesador Bulldozer enviado en el tercer trimestre de 2011. AVX ofrece nuevas funciones, nuevas instrucciones y un nuevo esquema de codificación.

La advertencia se muestra en cmd.

Este mensaje de advertencia lo imprime la biblioteca compartida de TensorFlow. Como indica el mensaje, la biblioteca compartida no incluye el tipo de instrucciones que su CPU podría usar.

¿Qué causa esta advertencia?

Después de TensorFlow 1.6, los archivos binarios ahora usan instrucciones AVX que ya no pueden ejecutarse en CPU más antiguas. Por lo tanto, las CPU más antiguas no podrán ejecutar el AVX, mientras que para las más nuevas, el usuario debe construir el flujo de tensor desde la fuente para su CPU. A continuación se muestra toda la información que necesita saber sobre esta advertencia en particular. Además, un método para deshacerse de esta advertencia para uso futuro.

¿Qué hace el AVX?

En particular, el AVX introdujo el FMA (Fused multiply-add); que es la operación de adición múltiple de punto flotante, y toda esta operación se realiza en un solo paso. Esto ayuda a acelerar muchas operaciones sin ningún problema. Hace que el cálculo de álgebra sea más rápido y fácil de usar, también el producto de puntos, la multiplicación de matrices, la convolución, etc. Y estas son todas las operaciones más utilizadas y básicas para cada entrenamiento de aprendizaje automático. Las CPU que admiten AVX y FMA serán mucho más rápidas que las antiguas. Pero la advertencia indica que su CPU es compatible con AVX, por lo que es un buen punto.

Tecnología Intel AVX

¿Por qué no se usa por defecto?

Esto se debe a que la distribución predeterminada de TensorFlow se crea sin las extensiones de CPU. Por extensiones de CPU, indica AVX, AVX2, FMA, etc. Las instrucciones que desencadenan este problema no están habilitadas de forma predeterminada en las compilaciones predeterminadas disponibles. Las razones por las que no están habilitadas es para que sea más compatible con la mayor cantidad de CPU posible. Además, para comparar estas extensiones, son mucho más lentas en CPU que en GPU. La CPU se usa en el aprendizaje automático a pequeña escala, mientras que se espera el uso de GPU cuando se usa para un entrenamiento de aprendizaje automático a mediana o gran escala.

Arreglando la Advertencia!

Estas advertencias son solo mensajes simples. El propósito de estas advertencias es informarle sobre el TensorFlow construido desde la fuente. Cuando construye el TensorFlow desde la fuente, puede ser más rápido en la máquina. Por lo tanto, todas estas advertencias le informan sobre la construcción de TensorFlow desde la fuente.

Si tiene una GPU en su máquina, puede ignorar estas advertencias del soporte de AVX. Porque los más caros se enviarán en un dispositivo GPU. Y si no desea ver más este error, simplemente puede ignorarlo agregando esto:

importe el módulo del sistema operativo en su código de programa principal y también configure el objeto de mapeo para él

 # Para deshabilitar la advertencia import os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Pero si estás en Unix, usa el comando de exportación en bash shell

 export TF_CPP_MIN_LOG_LEVEL = 2 

Pero si no tiene GPU, y desea utilizar su CPU tanto como sea posible, debe construir TensorFlow desde la fuente optimizada para su CPU con AVX, AVX2 y FMA habilitados aquí.

Artículos De Interés