windows - Problema al instalar Tensorflow-no es un problema de CUDA/CuDNN
import install (4)
Recientemente empecé a entrar en Tensorflow, pero tengo problemas con la instalación. Cada vez que intento importarlo me sale el siguiente error
>>> import tensorflow as tf
Traceback (most recent call last):
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 922, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 17, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 16, in swig_import_helper
return importlib.import_module(''_pywrap_tensorflow_internal'')
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named ''_pywrap_tensorflow_internal''
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow.py", line 74, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 922, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 17, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 16, in swig_import_helper
return importlib.import_module(''_pywrap_tensorflow_internal'')
File "C:/Users/[user]/AppData/Local/Programs/Python/Python36/lib/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named ''_pywrap_tensorflow_internal''
Failed to load the native TensorFlow runtime.
Miré otras publicaciones de desbordamiento de pila que tenían el mismo problema que yo, y sugirieron obtener las bibliotecas CUDA de NVIDIA. El problema es que no tengo ni una tarjeta gráfica NVIDIA ni la versión GPU de tensorflow, así que no creo que ese sea el problema. También hubo sugerencias para asegurarse de que los redistribuibles de Microsoft para Visual Studio estén instalados, así como están.
Si este es un problema basado en variables del sistema, agradecería la ayuda para cambiar las variables del sistema, ya que soy nuevo en eso. ¡Gracias!
Alguna información del sistema:
- SO: Microsoft Windows 10 Pro versión 10.0.17134
- CPU: Intel Xeon E5620
- Tarjeta gráfica: Radeon RX 480
- Versión de Python: 3.6.5 amd64 Tensorflow
- Método de instalación: pip instalar tensorflow
@ user1735003 lo descubrió. Desinstalé la última versión de tensorflow.
pip uninstall tensorflow
y luego instalado tensorflow 1.5
pip install tensorflow==1.5
Luego verifiqué la instalación trabajada con el script.
import tensorflow as tf
hello = tf.constant(''Hello, TensorFlow!'')
sess = tf.Session()
print(sess.run(hello))
Tengo la salida correcta
Hello, TensorFlow!
Si el problema persiste, verifique la numeración de las versiones y asegúrese de que cuda y TF sean compatibles.
Compruebe la numeración de la versión aquí.
O para una manera más sencilla, use Anaconda.
conda create --name new_env_name tensorflow-gpu
activate new_env_name
Instalé con éxito TensorFlow GPU versión 1.12 (más reciente hasta la fecha de escritura) con Cuda 9.0, GeForce 1050 Ti, Windows 10 y Python 3.6.7
Nota: ha instalado el kit de herramientas CUDA (versión 9) para que TensorFlow reconozca su GPU
Supongo que está intentando usar TF> = 1.6, porque su CPU es bastante antigua y no admite instrucciones AVX. De hecho, a partir de la versión 1.6, los binarios precompilados de tensorflow utilizan instrucciones AVX .
Actualmente sus opciones son:
- Utilice un binario pre-construido oficial de TF 1.5 o anterior. (Te perderás algunas cosas pero aun así está bien, diría).
-
Busque un binario precreado no oficial de TF> = 1.6 que no sea compatible con AVX.
-
Actualmente, los binarios
conda install
hasta el TF 1.10 de laconda install
en Windows no parecen ser compatibles con AVX, aunque no pude encontrar esta información en ningún lugar y, por lo tanto, no puedo saber si esto es intencional y por cuánto tiempo será así. -
Tenga en cuenta que los binarios de
conda-forge
(que solían ser el principal proveedor de tensorflow de conda antes de que estuviera disponible en el canal principal), por otro lado, están construidos con soporte AVX.
-
Actualmente, los binarios
- Cambia tu hardware para soportar AVX (obviamente).
- Compila tu propio binario de tensorflow sin instrucciones AVX. Una opción razonable si ninguno de los otros era posible.
Tenga en cuenta que las respuestas anteriores son correctas para muchos casos. Sin embargo, la degradación a tensorflow 1.5 puede no ser la mejor solución porque, por ejemplo, no tendrá acceso a algunas de las nuevas características de tensorflow, como la característica de "ejecución impaciente", por ejemplo.
Lo que hice en mi caso fue instalar tensorflow 1.8 con conda en lugar de pip. Desde mi pequeña experiencia con conda y pip, conda parece funcionar mejor cuando se trata de colocar los archivos requeridos en su ubicación correcta.
En resumen, en lugar de
pip3 install --upgrade tensorflow
-
pip3 install --upgrade tensorflow
, usé
conda install tensorflow
que instalará la última versión correctamente.
En caso de que no tenga instalado Anaconda para los comandos
conda
.
Descargar desde
here