Problema ao instalar o Tensorflow – não é um problema CUDA / CuDNN

Eu comecei recentemente a entrar em Tensorflow, mas estou tendo problemas com a instalação. Toda vez que tento importá-lo, recebo o seguinte erro

>>> 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 "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 658, in _load_unlocked File "", line 571, in module_from_spec File "", line 922, in create_module File "", 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  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  _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 "", line 1, in  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\__init__.py", line 24, in  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  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  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 "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 658, in _load_unlocked File "", line 571, in module_from_spec File "", line 922, in create_module File "", 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  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  _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. 

Eu olhei para outras mensagens de estouro de pilha que estavam tendo o mesmo problema que eu, e eles sugeriram obter as bibliotecas CUDA da NVIDIA. O problema é que eu não tenho nem uma placa gráfica NVIDIA nem a versão GPU do tensorflow, então não acho que seja esse o problema. Também houve sugestões para garantir a instalação dos redistribuíveis da Microsoft para o Visual Studio, que são.

Se este for um problema baseado em variável de sistema, agradeço a ajuda para alterar as variables ​​do sistema, pois sou novo em fazer isso. Obrigado!

Algumas informações do sistema:

  • SO: Microsoft Windows 10 Pro Versão 10.0.17134
  • CPU: Intel Xeon E5620
  • Placa Gráfica: Radeon RX 480
  • Versão do Python: 3.6.5 amd64 Tensorflow
  • Método de instalação: pip install tensorflow

   

Meu palpite é que você está tentando usar TF> = 1.6, porque sua CPU é bastante antiga e não suporta instruções AVX. De fato, a partir de 1.6, os binários pré-construídos por tensorflow usam instruções AVX .

Atualmente, suas opções são:

  1. Use um binário pré-construído oficial do TF 1.5 ou anterior. (Você vai sentir falta de algumas coisas, mas ainda está tudo bem, eu diria).
  2. Procure um binário pré-compilado não oficial do TF> = 1.6 que não suporte o AVX. No momento em que escrevo, os binários pré-construídos do TF 1.8 da conda install do conda install no Windows parecem não ser conda install com o suporte AVX, embora não consegui encontrar essa informação em lugar nenhum e, portanto, não sei dizer se isso é intencional e por quanto tempo caso.
    • Tenha em atenção que os binários da conda-forge (que costumava ser o principal fornecedor de tensorflow antes de estar disponível no canal principal), por outro lado, são construídos com o suporte AVX.
  3. Mude seu hardware para suportar o AVX (obviamente).
  4. Compile seu próprio binário de tensorflow sem instruções AVX. Uma opção razoável se nenhum dos outros fosse possível.

@ user1735003 descobri isso. Eu desinstalei a versão mais recente do tensorflow

 pip uninstall tensorflow 

e, em seguida, instalado o tensorflow 1.5

 pip install tensorflow==1.5 

então verifiquei a instalação trabalhada com o script

 import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello)) 

Eu tenho a saída correta

 Hello, TensorFlow! 

Tenha em mente que as respostas acima estão corretas para muitos casos. Entretanto, fazer downgrade para o tensorflow 1.5 pode não ser a melhor solução, porque, por exemplo, você não terá access a alguns dos novos resources do tensorflow, como o recurso de ‘execução ansiosa’, por exemplo.

O que eu fiz no meu caso foi instalar tensorflow 1.8 com conda ao invés de pip. De minha pouca experiência com conda e pip, conda parece ter um melhor desempenho quando se trata de colocar os arquivos necessários em sua localização correta.

Em resumo, em vez de pip3 install --upgrade tensorflow , usei o conda install tensorflow que instalará a versão mais recente corretamente.

Caso você não tenha o Anaconda instalado para comandos conda . Baixe aqui