windows - Problem installering Tensorflow - ikke et CUDA/CuDNN problem

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg begyndte for nylig at komme ind i Tensorflow, men jeg har problemer med installationen. Hver gang jeg prøver at importere det, får jeg følgende fejl


>>> import tensorflow as tf
Traceback (most recent call last):
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 14, in swig\_import\_helper
    return importlib.import\_module(mname)
  File "C:Users[user]AppDataLocalProgramsPythonPython36libimportlib\_\_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]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap\_tensorflow\_internal import *
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 17, in <module>
    \_pywrap\_tensorflow\_internal = swig\_import\_helper()
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 16, in swig\_import\_helper
    return importlib.import\_module('\_pywrap\_tensorflow\_internal')
  File "C:Users[user]AppDataLocalProgramsPythonPython36libimportlib\_\_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]AppDataLocalProgramsPythonPython36libsite-packages	ensorflow\_\_init\_\_.py", line 24, in <module>
    from tensorflow.python import pywrap\_tensorflow  # pylint: disable=unused-import
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpython\_\_init\_\_.py", line 49, in <module>
    from tensorflow.python import pywrap\_tensorflow
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 14, in swig\_import\_helper
    return importlib.import\_module(mname)
  File "C:Users[user]AppDataLocalProgramsPythonPython36libimportlib\_\_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]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap\_tensorflow\_internal import *
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 17, in <module>
    \_pywrap\_tensorflow\_internal = swig\_import\_helper()
  File "C:Users[user]AppDataLocalProgramsPythonPython36libsite-packages	ensorflowpythonpywrap\_tensorflow\_internal.py", line 16, in swig\_import\_helper
    return importlib.import\_module('\_pywrap\_tensorflow\_internal')
  File "C:Users[user]AppDataLocalProgramsPythonPython36libimportlib\_\_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.


Jeg kiggede på andre stack overflow indlæg, der havde det samme problem som mig, og de foreslog at få CUDA biblioteker fra NVIDIA. Problemet er, jeg har hverken et NVIDIA grafikkort eller GPU-versionen af ​​tensorflow, så jeg tror ikke det er sagen. Der var også forslag til at sikre, at Microsoft-omfordelingsmuligheder til visuel studie er installeret, som de er.


Hvis dette er et systemvariabaseret problem, værdsætter jeg hjælp til at ændre systemvariabler, som jeg er ny til at gøre. Tak skal du have!


Nogle System Info:



  • OS: Microsoft Windows 10 Pro Version 10.0.17134

  • CPU: Intel Xeon E5620

  • Grafikkort: Radeon RX 480

  • Python Version: 3.6.5 amd64 Tensorflow

  • Installer metode: pip install tensor flow


Bedste reference


Mit gæt er, at du forsøger at bruge TF>=1.6, fordi din CPU er ret gammel og ikke understøtter AVX instruktioner. Faktisk fra 1.6 på, bruger tensorflow forudbyggede binære filer AVX instruktioner. [11]


I øjeblikket er dine muligheder enten at:



  1. Brug en officiel præbygget binær af TF 1.5 eller tidligere. (Du vil savne nogle få ting, men det er stadig OK, jeg vil sige).

  2. Søg efter en uofficiel forudbygget binær af TF>=1.6, der ikke understøtter AVX.


    • For øjeblikket forekommer præfabrikerede binære filer indtil TF 1.10 fra conda install på Windows ikke at blive bygget med AVX-support, selv om jeg ikke kunne finde disse oplysninger hvor som helst og derfor ikke kan se om dette er forsætligt og hvor længe det vil være tilfældet.

    • Pas på, at binære filer fra conda-forge (som plejede at være den primære kondensatorstrømleverandør, inden den har været tilgængelig på hovedkanalen) på den anden side er bygget med AVX-support.


  3. Skift din hardware til at understøtte AVX (naturligvis).

  4. Kompilér dit eget binære tensor flow uden AVX instruktioner. En rimelig mulighed, hvis ingen af ​​de andre var mulige.


Andre referencer 1


@ user1735003 fandt ud af det.
 Jeg unistalled den nyeste version af tensorflow


pip uninstall tensorflow


og derefter installeret tensorflow 1.5


pip install tensorflow==1.5


så verificerede jeg den installation, der blev arbejdet med scriptet


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


Jeg fik den korrekte output


Hello, TensorFlow!

Andre referencer 2


Husk at ovenstående svar er korrekte for mange tilfælde.
Nedgradering til tensorflow 1.5 er måske ikke den bedste løsning, fordi du f.eks. Ikke har adgang til nogle af de nye funktioner i tensorflow som f.eks. 'Ivrig udførelse' -funktionen.


Hvad jeg gjorde i mit tilfælde var at installere tensorflow 1.8 med conda i stedet for pip. Fra min lille erfaring med conda og pip synes conda at virke bedre, når det kommer til at placere nødvendige filer på deres rette sted.


Sammenfattende
I stedet for pip3 install --upgrade tensorflow,
Jeg brugte conda install tensorflow, som vil installere den nyeste version korrekt.


Hvis du ikke har Anaconda installeret til conda kommandoer. Download herfra [12]