it-swarm.com.de

ImportError: libcublas.so.9.0: Die gemeinsam genutzte Objektdatei kann nicht geöffnet werden

derzeit habe ich cuda 8.0 und cuda 9.0 im gpu-unterstützungssystem installiert. Beim Importieren aus einem Keras-Modul bin ich auf diesen Fehler gestoßen. Es heißt, dass das Laden der nativen Tensorflow-Laufzeit fehlgeschlagen ist. Das Fehlerprotokoll, das ich erhielt, war:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/usr/local/lib/python3.5/dist-
packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "Try1.py", line 11, in <module>
from keras.models import Sequential
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/__init__.py", line 3, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/utils/__init__.py", line 6, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/utils/conv_utils.py", line 3, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/backend/__init__.py", line 83, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/backend/tensorflow_backend.py", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 73, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

Wenn ich nvcc --version starte, lautet die zurückgegebene cuda-Version:

Cuda compilation tools, release 8.0, V8.0.61

Ich habe über einen ähnlichen Beitrag gelesen, konnte aber mein Problem nicht lösen. Meistens denke ich, dass dies ein Konflikt zwischen zwei Cuda-Versionen ist. Kann mir jemand sagen, wie ich das lösen kann? Danke im Voraus.

28
arvind

Sie müssen Ihren LD_LIBRARY_PATH aktualisieren, damit er auf den /usr/local/cuda-9.0/lib64..__ verweist. Fügen Sie der .bashrc-Datei (oder einem anderen verwendeten Terminal) die folgende Zeile hinzu.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
28
layog

Versuchen Sie den folgenden Code

 pip3 install --upgrade tensorflow-gpu==1.4

Nachdem Sie diesen Befehl pip3 install --upgrade tensorflow-gpu==1.4 im Terminal eingegeben haben, wird der Tensorflow auf 1.4.0 heruntergestuft. Dieser Fehler wurde durch Tensorflow 1.6.0 verursacht.

5
S. Theon

Die Tensorflow-Binaries unterstützen Cuda 9.1 derzeit nicht. Die Lösung könnte also nur die Installation von Tensorflow von source sein.

Ich hatte auch das oben erwähnte Problem, während ich Cuda 9.1 + cuDNN 6 für Tensorflow installiert hatte, und dies hat bei mir funktioniert.

https://devtalk.nvidia.com/default/topic/1026198/cuda-setup-and-installation/cuda-9-0-importerror-libcublas-so-8-0

Darüber hinaus haben Sie die folgenden zwei Optionen:

  1. CUDA 8.0 + Tensorflow - die stabilste Version von CUDA, die mit Tensorflow-Binaries funktioniert.

  2. CUDA 9.0 + Tensorflow - neueste CUDA-Version, mit der Tensorflow-Binärdateien kompatibel sind.

4
daVincere

Ich habe versucht, tf in einer Anaconda-Umgebung zu installieren und hatte das gleiche Problem. Nach der Installation von CUDA und cuDNN musste ich zuerst eine neue Umgebung erstellen und dann in dieser Umgebung pip install tensorflow-gpu

0
DKS-

Wenn Sie eine neue Version von cuda installieren, müssen Sie den möglicherweise hinzugefügten permanenten Pfad überprüfen. 

um dies im Terminallauf zu überprüfen 

gedit ~/.bashrc

wenn Sie sehen, dass der alte Cuda-Pfad vorhanden ist, müssen Sie ihn in den neuen Pfad ändern. 

mein war zum Beispiel: 

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/lib/nvidia-384

Ich habe sowohl den Cuda-Pfad als auch den Nvidia-Pfad geändert, da ich den Treiber auch folgendermaßen aktualisiert habe:

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/lib/nvidia-390

Hoffentlich hilft das :) 

0
Hemin Ali

Dieses Problem hatte ich nach einem Upgrade von Ubuntu 16.04 auf 18.04. Ich hatte CUDA 9.1 mit Tensorflow 1.12.0 installiert, und diese Version von Tensorflow benötigt CUDA 9.0. Bei der Installation von CUDA 9.0 sind meine Grafiktreiber zerstört worden.

Glücklicherweise fand ich Anweisungen zum Installieren von mehreren CUDA-Bibliotheken . Die einzigen Teile, die ich bisher brauchte, sind das Installer-Skript herunterzuladen, es mit den --silent --toolkit --override-Optionen auszuführen und dann LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 einzustellen. Ich habe auch den symbolischen Link bei /usr/local/cuda auf /usr/local/cuda-9.1 zurückgesetzt, aber ich bin mir nicht sicher, ob das nötig ist.

Bisher funktioniert Tensorflow gut.

0
Don Kirkby

Dieses Problem hängt mit dem Protobuf-Compiler von Google zusammen, aufgrund dessen der Tensorflow die gemeinsam genutzte Objektdatei, in diesem Fall libcublas.so.9.0, nicht findet.

Das Erstellen der neuesten Version von protobuf (3.5.0) aus dem Quellcode half auch nicht. Was für mich funktionierte, war die Installation des systemweiten Protobuf-Compilers apt install protobuf-compiler auf Ubuntu 16.04. Und installieren Sie die Python-Version durch pip3 install protobuf. Ich verwende CUDA 9.0, da 9.1 noch nicht mit der vorgefertigten Binärdatei von tensorflow kompatibel ist.

Sie können die systemweite Protobuf-Version mit überprüfen protokoll - Version Welches ist 2.6.1 am 16.04. Die Protoc-Python-Version ist 3.5.2.post1. Hoffe das hilft. Ich hatte ein ähnliches Problem mit früheren Versionen von Tensorflow und CUDA 8 und hatte diesen Fehlerbehebungsvorgang dokumentiert. Mit dem gleichen Verfahren kann ich auch tensorflow 1.8.0 verwenden.

0
sdash

Tensorflow-Version> = 1.5 erfordert CUDA-Version> 8.0. Wenn Sie über CUDA Version 8.0 verfügen, können Sie Ihre Tensorflow-Version auf 1.4 herabstufen.

pip install tensorflow-gpu==1.4

0

Ich löste mit folgenden Schritten:

# Add NVIDIA package repository
Sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_AMD64.deb
Sudo apt install ./cuda-repo-ubuntu1604_9.1.85-1_AMD64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_AMD64.deb
Sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_AMD64.deb
Sudo apt update

# Install CUDA and tools. Include optional NCCL 2.x
Sudo apt install cuda9.0 cuda-cublas-9-0 cuda-cufft-9-0 cuda-curand-9-0 \
    cuda-cusolver-9-0 cuda-cusparse-9-0 libcudnn7=7.2.1.38-1+cuda9.0 \
    libnccl2=2.2.13-1+cuda9.0 cuda-command-line-tools-9-0

# Optional: Install the TensorRT runtime (must be after CUDA install)
Sudo apt update
Sudo apt install libnvinfer4=4.1.2-1+cuda9.0
0
susan097

Ich habe diesen Fehler erhalten, der jedoch auf einen Mangel an GPU-Speicher zurückzuführen war, obwohl die Fehlermeldung nicht direkt zu sein schien. Ich habe versucht, den Server neu zu starten, wie von anderen vorgeschlagen, aber ich habe nur wenige weitere Iterationen (Epochen) gewonnen. Um das Problem zu lösen, habe ich die GPU-Serverinstanz für eine größere Instanz von meinem Cloud-Anbieter mit demselben Server-Image aktualisiert. 

Ich hoffe das kann jemand anderem helfen.

0
Claude COULOMBE