¿Qué significa este mensaje de tensorflow? ¿Algún efecto secundario? ¿La instalación fue exitosa?

6 minutos de lectura

Acabo de instalar tensorflow v2.3 en anaconda python. Traté de probar la instalación usando el comando python a continuación;

$ python -c "import tensorflow as tf; x = [[2.]]; print('tensorflow version', tf.__version__); print('hello, {}'.format(tf.matmul(x, x)))"

Recibí el siguiente mensaje;

2020-12-15 07:59:12.411952: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
hello, [[4.]]

Por el mensaje, parece que la instalación se instaló correctamente. pero que hace This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations: AVX AVX2 significa exactamente?

¿Estoy usando una versión de tensorflow con algunas características limitadas? ¿Algún efecto secundario?

Estoy usando Windows 10.

  • La instalación fue ciertamente exitosa.

    – guagay_wk

    15 de diciembre de 2020 a las 0:10

Una parte importante de Tensorflow es que se supone que es rápido. Con una instalación adecuada, funciona con CPU, GPU o TPU. Parte de ir rápido significa que usa un código diferente dependiendo de su hardware. Algunas CPU admiten operaciones que otras CPU no admiten, como la suma vectorizada (agregar varias variables a la vez). Tensorflow simplemente te dice que la versión que has instalado puede usar las operaciones AVX y AVX2 y está configurada para hacerlo de manera predeterminada en ciertas situaciones (por ejemplo, dentro de una matriz de multiplicación hacia adelante o hacia atrás), lo que puede acelerar las cosas. Esto no es un error, solo le dice que puede y aprovechará su CPU para obtener esa velocidad adicional.

Nota: AVX significa Extensiones vectoriales avanzadas.

  • Gracias. Parece que esto es algo bueno. No es una advertencia por la que preocuparse. En realidad, si es algo bueno, no hay necesidad de generar un mensaje para informar a los usuarios. Algunos de nosotros podemos preocuparnos.

    – usuario3848207

    17 de diciembre de 2020 a las 0:36

  • Sí, también tuve esta queja exacta cuando lo intenté por primera vez. Ninguna noticia es una buena noticia en mi mundo.

    – mCodificación

    21 de diciembre de 2020 a las 19:20

  • ¿Hay alguna forma de ocultar este mensaje sin ocultar posibles errores en el resto del código?

    – El Hombre Cuántico

    26 de febrero de 2021 a las 10:25

  • @TheQuantumMan import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '1' ver: stackoverflow.com/a/42121886/2547724

    – Riebeckita

    24 de febrero a las 21:56


  • Solo para estar seguro, ¿ya está optimizado? ¿O necesito habilitarlo activamente de alguna manera?

    – André Goulart

    4 de marzo a las 1:40

El mensaje

This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)
to use the following CPU instructions in performance-critical operations:  AVX AVX2

significa que en lugares donde el rendimiento es importante (por ejemplo, la multiplicación de matrices en redes neuronales profundas), se utilizarán ciertas instrucciones de compilación optimizadas. La instalación parece ser exitosa.

los Repositorio oneDNN GitHub dice:

oneAPI Deep Neural Network Library (oneDNN) es una biblioteca de rendimiento multiplataforma de código abierto de componentes básicos para aplicaciones de aprendizaje profundo. La biblioteca está optimizada para procesadores de arquitectura Intel, gráficos de procesador Intel y gráficos basados ​​en arquitectura Xe. oneDNN tiene soporte experimental para las siguientes arquitecturas:

  • Brazo* Arquitectura de 64 bits (AArch64)
  • GPU NVIDIA*
  • OpenPOWER* Energía ISA (PPC64)
  • IBMz* (s390x)

  • ¿Hay alguna forma de ocultar este mensaje sin ocultar posibles errores en el resto del código?

    – El Hombre Cuántico

    26 de febrero de 2021 a las 10:25

  • @TheQuantumMan: creo que stackoverflow.com/a/42121886/5666087 responde a su pregunta

    – jkr

    26 de febrero de 2021 a las 14:07

  • Pensé que no estaba usando oneAPI. Entonces, si uno usa NVIDIA GPU, ¿entonces se garantiza que se usará oneAPI?

    – VimNing

    16 de mayo a las 14:21

Avatar de usuario de Leszek Kosinkiewicz
Leszek Kosinkiewicz

Compilé la biblioteca Tensorflow varias veces y si tienes algo como lo siguiente:

kosinkie_l@Fedora ~/project/build $ python -c "import tensorflow as tf; x = [[2.]]; print('tensorflow version', tf.__version__); print('hello, {}'.format(tf.matmul(x, x)))"

2022-08-09 15:31:03.414926: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  SSE3 SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
tensorflow version 2.10.0-rc0
hello, Tensor("MatMul:0", shape=(1, 1), dtype=float32)
kosinkie_l@Fedora ~/project/build $

esto significa que la CPU puede usar, pero la biblioteca Tensorflow no usa estos.

Los mensajes pueden confundirse, así que elegí el código fuente (tensorflow/core/platform/cpu_feature_guard.cc:193) y hay lo siguiente:

131 #ifndef __AVX__
132     CheckIfFeatureUnused(CPUFeature::AVX, "AVX", missing_instructions);
133 #endif  // __AVX__
134 #ifndef __AVX2__
135     CheckIfFeatureUnused(CPUFeature::AVX2, "AVX2", missing_instructions);
136 #endif  // __AVX2__
...
192     if (!missing_instructions.empty()) {
193       LOG(INFO) << "This TensorFlow binary is optimized with "
194                 << "oneAPI Deep Neural Network Library (oneDNN) "
195                 << "to use the following CPU instructions in performance-"
196                 << "critical operations: " << missing_instructions << std::endl
197                 << "To enable them in other operations, rebuild TensorFlow "
198                 << "with the appropriate compiler flags.";
199     }

El método “CheckIfFeatureUnused(CPUFeature::AVX, “AVX”,mising_instructions)” comprueba si la CPU puede ejecutar AVX y coloca el “AVX” en la colección de faltante_instrucciones, lo que se imprime.

Debe crear un nuevo entorno o intentar instalar tensorflow en gpu en el entorno base actual, para eso use los siguientes comandos …

creando un nuevo entorno: conda create –name py36 python==3.6.13 o cualquier versión más reciente

instalando tensorflow en CPU: conda install tensorflow conda install keras

instalando tensorflow en GPU: conda install tensorflow-gpu conda install tensorflow-estimator==2.1.0 o cualquier versión más reciente

Espero que te sirva, gracias…

cuando usaba “detallado=0” en Model.fit() ocurrió, luego lo eliminé y se resolvió

  • Su respuesta podría mejorarse con información de apoyo adicional. Edite para agregar más detalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

    – Comunidad
    Bot

    14 de enero a las 21:52

Avatar de usuario de Tomerikoo
Tomerikoo

Hice los siguientes comandos para instalar keras y tensorflow en UPC y GPU:

conda create --name py36 python==3.6.13
conda install tensorflow
conda install keras
conda install tensorflow-gpu
conda install tensorflow-estimator==2.1.0

  • Su respuesta podría mejorarse con información de apoyo adicional. Edite para agregar más detalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta. Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

    – Comunidad
    Bot

    14 de enero a las 21:52

¿Ha sido útil esta solución?