2017-03-08 3 views
3

Ich benutze Ubuntu 16.04, Cuda 8.0 und cudann-v5.1. Ich habe die Tensorflow-CPU-Version deinstalliert und die Tensorflow-GPU neu installiert. Gefolgt von den hier gegebenen Anweisungen: https://alliseesolutions.wordpress.com/2016/09/08/install-gpu-tensorflow-from-sources-w-ubuntu-16-04-and-cuda-8-0-rc/ImportError: libnvidia-fatbinaryloader.so.375.39: Gemeinsame Objektdatei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

aber wenn ich versuche, tensorflow zu laden, bekomme ich folgende Fehlermeldung:

>>> import tensorflow as tf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module> 
    from tensorflow.python import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 51, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 56, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
ImportError: libnvidia-fatbinaryloader.so.375.39: cannot open shared object file: No such file or directory 


Failed to load the native TensorFlow runtime. 
+0

Das gleiche Problem hier. Bisher habe ich diese Fehlermeldung durch Hinzufügen von '/ usr/lib/nvidia-375' zu meiner' LD_LIBRARY_PATH' Umgebungsvariablen übergeben. Das ist aber wahrscheinlich nicht das Ende von Problemen, ich kämpfe direkt danach mit einem anderen, der ungelöst ist. –

Antwort

-1

HINWEIS: TensorFlow erfordert MSVCP140.DLL, die möglicherweise nicht auf Ihrem System installiert sein. Wenn Sie beim Importieren von Tensorflow als tf einen Fehler über Kein Modul mit dem Namen "_pywrap_tensorflow" und/oder DLL-Ladefehler finden, überprüfen Sie, ob sich MSVCP140.DLL in% PATH% befindet und falls nicht, sollten Sie [Visual C++ 2015 verteilbare (x64-Version) [1]. https://www.microsoft.com/en-us/download/details.aspx?id=53587

ich empfehle Ihnen, die Dokumentation des tensorflow offiziellen Blick auf

es tut mir leid ich nicht sehen Sie Ubuntu verwendete ich die Microsoft Windows 10 so traurig ist

10

Ich bin auch auf dieses Problem gestoßen. Es gab zwei Probleme, die gelöst werden mussten.

  1. Ich habe /usr/lib/nvidia-375 meiner LD_LIBRARY_PATH Umgebungsvariable. Sie können überprüfen, ob die Datei libnvidia-fatbinaryloader.so.375.39 in diesem Verzeichnis vorhanden ist. Wenn nicht, finden Sie, wo es lebt und fügen Sie diesen Pfad hinzu. Es ist mir nicht klar, warum dies bei der Zusammenstellung der Quellen nicht richtig aufgenommen wurde.

  2. nächstes traf ich den Fehler:

    libstdc++.so.6: version `CXXABI_1.3.8' not found 
    

Wenn Sie stoßen, dass es ist, weil Sie eine neuere Version von gcc als in Anakonda oder Ihre Python-Installation zur Verfügung steht. Für mich bedeutete das Hinzufügen dieses Pfades zu LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Ich musste auch die alte libstdc++.so.6 bei dem Pfad umbenennen, der in der Fehlermeldung angezeigt wird. Ich konnte keine Möglichkeit finden, Python davon zu überzeugen, nicht in den Standardpfad zu schauen, ohne nur die Datei umzubenennen. Es mag einen saubereren Weg geben, aber das hat für mich funktioniert.

In der Installation gab es viele versteckte Fehler.

+0

hatte das gleiche Problem mit 'LD_LIBRARY_PATH', danke, dass ich nicht über so etwas nachgedacht hätte – user3085931

+1

Danke. Ich bestätige die Einstellung LD_LIBRARY_PATH funktioniert. – dhfromkorea

+0

Hallo, @David Parks, ich habe libnvidia-fatbinaryloader.so.375.66 in '/ usr/lib/nvidia-375' Pfad, aber ich bekomme den Fehler als' ImportError: libnvidia-fatbinaryloader.so.375.39: kann nicht freigegebenes Objekt öffnen Datei: Keine solche Datei oder Verzeichnis ". Was ist zu tun? – Akhilesh

1

In meinem Fall wurde Tensorflow-GPU installiert und funktionierte für eine Zeit, aber die Installation von nvidia-opencl-icd-384 führte zu einem Upgrade meiner nvidia-Treiber von 384.47 auf 384.59 aber nicht aktualisiert libcuda, nvidia-Einstellungen und vielleicht andere Pakete. Ein Upgrade von libcuda sollte das Problem wahrscheinlich lösen, aber wahrscheinlich am besten, um es zu entfernen und neu zu installieren.

sudo apt-get purge nvidia* 
sudo apt-get install libcuda1-384 nvidia-384 nvidia-384-dev nvidia-prime nvidia-settings 

Für mich symbolischen Link für libnvidia-fatbinaryloader.so.384.37 -> libnvidia-fatbinaryloader.so.384.59 in/usr/lib und/usr/lib32 hat die Ausgabe und LD_LIBRARY_PATH nicht korrekt war bereits richtig konfiguriert .

1

Ich stieß auf das gleiche Problem. Hier ist meine Lösung!

  1. finden libnvidia-fatbinaryloader.so.* Datei in Ihrem Computer.Für mich

    (ubuntu16.04):sudo find -iname libnvidia-fatbinaryloader.so*

und dann zeigt es libnvidia-fatbinaryloader.so.375.45,
HINWEIS: hat andere Versionsnummer

  1. kopieren Sie die Datei auf Sie cuda lib, zB: /usr/local/cuda/lib64/

  2. ändern Sie die Versionsnummer 375.45 zu Ihrem Fräulein ing-Datei, 375.39, zB:

    mv libnvidia-fatbinaryloader.so.375.45 libnvidia-fatbinaryloader.so.375.39

0

@Akhilesh die richtige Antwort hat:

sudo ln -s /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.66 /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.39 
0

In meinem Fall vorher nvidia 387.34 ich hatte und später deinstalliert

sudo apt-get purge nvidia* 
mit

Dann habe ich Treiber 384.111 installiert, hinzugefügt /usr/lib/nvidia-384 meinen LD_LIBRARY_PATH aber tensorflow fragt noch für libnvidia-fatbinaryloader.so.387.34

Ich erkennen, dass /usr/lib/x86_64-linux-gnu und /usr/lib/i386-linux-gnu hatten noch libcuda.so.387.34 Nachdem ich diese Dateien aus diesen beiden Verzeichnissen gelöscht tensorflow die richtige Version von 384. aufgenommen

Do apt-get remove nvidia-{{version}} für die Deinstallation. Dann tun Sie sudo apt-get purge nvidia*. Das wird narrensicherer sein, denke ich.

Verwandte Themen