TensorFlow versión 1.0.0-rc2 en Windows: “OpKernel (‘op:” BestSplits “device_type:” CPU “’) para operación desconocida: BestSplits” con código de prueba

Instalé la versión 1.0.0-rc2 de TensorFlow en Windows 7 SP1 x64 Ultimate (Python 3.5.2 | Anaconda personalizado (64 bits)) usando:

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0rc2-cp35-cp35m-win_amd64.whl 

Cuando bash ejecutar la secuencia de comandos de prueba desde https://web.archive.org/web/20170214034751/https://www.tensorflow.org/get_started/os_setup#test_the_tensorflow_installation en Eclipse 4.5 o en la consola:

 import tensorflow as tf print('TensorFlow version: {0}'.format(tf.__version__)) hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) 

Obtengo algún mensaje de error:

 TensorFlow version: 1.0.0-rc2 'Hello, TensorFlow!' E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflob w\core\framework\op_kernel.cc:943] OpKernel ('op: "BestSplits" device_type: "CPU"') for unknown op: BestSplits E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "CountExtremelyRandomStats" device_type: "CPU"') for unknown op: CountExtremelyRandomStats E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "FinishedNodes" device_type: "CPU"') for unknown op: FinishedNodes E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "GrowTree" device_type: "CPU"') for unknown op: GrowTree E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "ReinterpretStringToFloat" device_type: "CPU"') for unknown op: ReinterpretStringToFloat E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "SampleInputs" device_type: "CPU"') for unknown op: SampleInputs E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "ScatterAddNdim" device_type: "CPU"') for unknown op: ScatterAddNdim E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "TopNInsert" device_type: "CPU"') for unknown op: TopNInsert E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "TopNRemove" device_type: "CPU"') for unknown op: TopNRemove E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "TreePredictions" device_type: "CPU"') for unknown op: TreePredictions E c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\framework\op_kernel.cc:943] OpKernel ('op: "UpdateFertileSlots" device_type: "CPU"') for unknown op: UpdateFertileSlots 

¿Por qué?

No tuve tales problemas con TensorFlow 0.12.1 (instalado con pip install tensorflow==0.12.1 ):

 TensorFlow version: 0.12.1 b'Hello, TensorFlow!' 

Instalar la comstackción nocturna de hoy (versión de CPU):

 pip install --upgrade http://ci.tensorflow.org/view/Nightly/job/nightly-win/85/DEVICE=cpu,OS=windows/artifact/cmake_build/tf_python/dist/tensorflow-1.0.0rc2-cp35-cp35m-win_amd64.whl 

solucionó el problema (no más “OpKernel ('op: ”BestSplits“ device_type: ”CPU“') for unknown op: BestSplits” etc.).

Ahora hay algunas advertencias SSE:

 TensorFlow version: 1.0.0-rc2 b'Hello, TensorFlow!' 2017-02-15 19:56:22.688266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations. 2017-02-15 19:56:22.688266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations. 2017-02-15 19:56:22.689266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations. 2017-02-15 19:56:22.689266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. 2017-02-15 19:56:22.689266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. 2017-02-15 19:56:22.689266: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. 

¿En qué caso puede probar cómo comstackr Tensorflow con las instrucciones SSE4.2 y AVX?


TensorFlow 1.0.0 fue lanzado hace unos días. Sin embargo, tiene el mismo problema. Una construcción nocturna más reciente tiene diferentes advertencias :

 sess = tf.Session() 2017-02-17 13:01:59.790943: W c:\tf_jenkins\home\workspace\nightly-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations. 

Para su información: Tensorflow macOS binario, comstackdo con optimizaciones SSE4.1, SSE4.2 y AVX.


Para ocultar las advertencias / errores, puede usar os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' , por ejemplo:

 import tensorflow as tf import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' print('TensorFlow version: {0}'.format(tf.__version__)) hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) 

TF_CPP_MIN_LOG_LEVEL :

  • 0 : se muestran todos los registros (esa es la configuración predeterminada)
  • 1 : filtrar los registros INFO
  • 2 : adicionalmente filtrar registros de WARNING
  • 3 : adicionalmente filtrar los registros ERROR .

Refiriéndose a las sugerencias anteriores, creo que hacer 2 pasos es útil:

Primero, actualice tensorflow:

 pip install --upgrade tensorflow==1.1.0rc1 

luego, los registros de error se convierten en registros de advertencia:

 W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations. 

Segundo, puedes suprimir el filtro de advertencia en el nivel 2.

 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

Creo que funciona bien sin filtrar los registros de ‘error’.

Es posible que pueda suprimir el filtro de advertencia en el nivel 2. Esto me funcionó con TensorFlow 1.0.1 en una instalación virtualenv.

os.environ [‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’

Sry sobre la respuesta adicional, pero no soy digno de comentar.

Parece que el problema está solucionado en la versión 1.1.0rc0 y posteriores.

Encuentra la última versión de tensorflow:

 pip search --version tensorflow 

Actualizar tensorflow:

 pip install --upgrade tensorflow==1.1.0rc1