Tensorflow: ImportError : libcublas.so.9.0 : impossible d'ouvrir le fichier d'objet partagé : aucun fichier ou répertoire de ce type

Créé le 23 déc. 2017  ·  136Commentaires  ·  Source: tensorflow/tensorflow

J'ai installé tf-nightly build et j'obtiens l'erreur suivante lors de l'importation de tensorflow.
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory .

Si je recherche cuda 9, j'obtiens ce qui suit :

ldconfig -v
/usr/local/cuda-8.0/targets/x86_64-linux/lib:
    libnvgraph.so.8.0 -> libnvgraph.so.8.0.61
    libnppicom.so.8.0 -> libnppicom.so.8.0.61
    libnppial.so.8.0 -> libnppial.so.8.0.61
    libcufftw.so.8.0 -> libcufftw.so.8.0.61
    libcufft.so.8.0 -> libcufft.so.8.0.61
    libnppif.so.8.0 -> libnppif.so.8.0.61
    libcublas.so.8.0 -> libcublas.so.8.0.88
    libnvblas.so.8.0 -> libnvblas.so.8.0.88
    libnppi.so.8.0 -> libnppi.so.8.0.61
    libcusolver.so.8.0 -> libcusolver.so.8.0.61
    libnppidei.so.8.0 -> libnppidei.so.8.0.61
    libnvrtc-builtins.so.8.0 -> libnvrtc-builtins.so.8.0.61
    libnvrtc.so.8.0 -> libnvrtc.so.8.0.61
    libnpps.so.8.0 -> libnpps.so.8.0.61
    libcuinj64.so.8.0 -> libcuinj64.so.8.0.61
    libnppig.so.8.0 -> libnppig.so.8.0.61
    libOpenCL.so.1 -> libOpenCL.so.1.0.0
    libnppicc.so.8.0 -> libnppicc.so.8.0.61
    libnppist.so.8.0 -> libnppist.so.8.0.61
    libnppisu.so.8.0 -> libnppisu.so.8.0.61
    libnppim.so.8.0 -> libnppim.so.8.0.61
    libcurand.so.8.0 -> libcurand.so.8.0.61
    libcudart.so.8.0 -> libcudart.so.8.0.61
    libnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0
    libnppitc.so.8.0 -> libnppitc.so.8.0.61
    libnppc.so.8.0 -> libnppc.so.8.0.61
    libcusparse.so.8.0 -> libcusparse.so.8.0.61
/usr/local/cuda-9.1/targets/x86_64-linux/lib:
    libnppicc.so.9.1 -> libnppicc.so.9.1.85
    libnppisu.so.9.1 -> libnppisu.so.9.1.85
    libcufftw.so.9.1 -> libcufftw.so.9.1.85
    libcufft.so.9.1 -> libcufft.so.9.1.85
    libnppial.so.9.1 -> libnppial.so.9.1.85
    libnppist.so.9.1 -> libnppist.so.9.1.85
    libcublas.so.9.1 -> libcublas.so.9.1.85
    libnvblas.so.9.1 -> libnvblas.so.9.1.85
    libnppitc.so.9.1 -> libnppitc.so.9.1.85
    libcusolver.so.9.1 -> libcusolver.so.9.1.85
    libnvrtc.so.9.1 -> libnvrtc.so.9.1.85
    libnvrtc-builtins.so.9.1 -> libnvrtc-builtins.so.9.1.85
    libnppidei.so.9.1 -> libnppidei.so.9.1.85
    libOpenCL.so.1 -> libOpenCL.so.1.0.0
    libnppig.so.9.1 -> libnppig.so.9.1.85
    libnppc.so.9.1 -> libnppc.so.9.1.85
    libcudart.so.9.1 -> libcudart.so.9.1.85
    libnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0
    libnvgraph.so.9.1 -> libnvgraph.so.9.1.85
    libnppif.so.9.1 -> libnppif.so.9.1.85
    libcusparse.so.9.1 -> libcusparse.so.9.1.85
    libaccinj64.so.9.1 -> libaccinj64.so.9.1.85
    libcuinj64.so.9.1 -> libcuinj64.so.9.1.85
    libnppim.so.9.1 -> libnppim.so.9.1.85
    libnppicom.so.9.1 -> libnppicom.so.9.1.85
    libnpps.so.9.1 -> libnpps.so.9.1.85
    libcurand.so.9.1 -> libcurand.so.9.1.85

Je cela en raison d'une incompatibilité de nom. libcublas.so.9.0 =! libcublas.so.9.1 ? Et si oui, comment pouvons-nous surmonter cela?

Commentaire le plus utile

L'avez-vous résolu ? Ce problème est causé par tensorflow-gpu-1.5 requis cuda 9.0, vous devez donc installer tensorflow-gpu-1.4. Et rappelez-vous de désinstaller tensorflow-gpu-1.5. Veuillez utiliser ceci "pip install --upgrade tensorflow-gpu==1.4"

Tous les 136 commentaires

Je pense que cela est dû au fait que vous avez CUDA 9.1 et non 9.0, je suis confronté exactement au même problème.

@Timonzimm Je sais et je pense que tout le problème est ce f ** nommant libcublas.so.xxx que nvidia met. Il s'agit intrinsèquement d'une incompatibilité sur les systèmes Linux chaque fois que ce nombre change, donc comme il ne peut pas trouver les correspondances exactes, il pense que le fichier n'existe pas et renvoie l'erreur.

Je pense que vous devriez utiliser le lien de symbole de ''cuda/'' à ''cuda/9.1", ou votre version de cuda est trop nouvelle pour la branche principale de tensorflow

@ burui11087 J'ai complètement oublié les liens symboliques. Merci de me le rappeler.

On dirait que cela est résolu (et la cause première était une incompatibilité de version de CUDA - 9.0 vs 9.1) ?
Je ferme ce problème car je comprends qu'il est résolu, mais s'il vous plaît laissez-moi savoir si je me trompe.

Pour info @gunan @av8ramit (qui travaille sur la prochaine version 1.5)

Je rencontre également exactement le même problème avec Kirk86. Pour moi, j'ai installé cuda toolkit 8.0 et cudnn 5.1.
Ensuite, j'ai fait ce que vous avez dit ci-dessus, tous ne fonctionnent pas.

Pour utiliser les nightlies, vous devez avoir CUDA 9.0 et cudnn 7 installés.
@yangfengKAUST avec la version actuelle de cuda et cudnn installée, TF se plaint simplement de ne pas trouver les versions qu'il attend.

@Timonzimm Je suis confronté au même problème. L'as-tu compris?

J'ai installé les versions 8.0, 9.0, 9.1 + cudnn qui semblent spécifiques à chacune. Le lien symbolique ne fonctionnait pas à partir des bibliothèques 9.1. Je soupçonne que parfois le lien symbolique dans le LD_LIBRARY_PATH ne fonctionne pas non plus lorsque je change de version sur le lien /usr/local/cuda. J'ai fini par le faire de la manière la plus simple pour charger les bibliothèques dans mon programme Java jusqu'à ce que je puisse trouver un moyen plus propre de gérer les chemins à l'intérieur d'Eclipse.

    try {
        System.load("/usr/local/cuda/lib64/libcublas.so.9.0");
        System.load("/usr/local/cuda/lib64/libcusolver.so.9.0");
        System.load("/usr/local/cuda/lib64/libcudart.so.9.0");
        System.load("/usr/local/cuda/lib64/libcufft.so.9.0");
        System.load("/usr/local/cuda/lib64/libcurand.so.9.0");

        System.load("/home/greg/Desktop/platform/tensorbuilder/jni/libtensorflow_jni.so");
      } catch (UnsatisfiedLinkError e) {
          System.err.println("Native code library failed to load.\n" + e);
          System.exit(1);
      }

.

@asimshankar J'aimerais savoir que dans votre commentaire ci-dessus, vous voulez dire que nous devrions rétrograder cuda à 9.0 et que tensorflow 1.5 ne fonctionne pas avec cuda 9.1 ?

Vous avez clos ce problème, mais il n'est pas clair quelle est la bonne action que nous devrions prendre !

Remarque : j'ai également installé cuda 9.1 au lieu de cuda 9.0.

Juste pour info, j'ai les deux installés. Construire à partir de zéro fonctionnera avec l'un ou l'autre, mais les binaires nocturnes utilisent 9.0.

@AwasthiMaddy - Oui, les binaires de la version TensorFlow 1.5 sont conçus pour CUDA 9.

L'avez-vous résolu ? Ce problème est causé par tensorflow-gpu-1.5 requis cuda 9.0, vous devez donc installer tensorflow-gpu-1.4. Et rappelez-vous de désinstaller tensorflow-gpu-1.5. Veuillez utiliser ceci "pip install --upgrade tensorflow-gpu==1.4"

@aipeteryao - Merci.

Quelqu'un doit réparer la page https://www.tensorflow.org/install/install_linux si cela est vrai, j'ai juste suivi ses instructions exactement et vous dit d'installer CUDA 8.0 (en particulier, pas "le dernier CUDA").

Ensuite, dès que vous avez terminé, vous obtenez cette erreur (il recherche cublas 9.0, qui, d'après ce que je peux lire ici, n'aurait pas fonctionné non plus, car CUDA 9.1 est la valeur par défaut que vous obtenez de NVIDIA).

Soit les instructions de la page Web devraient fonctionner avec la dernière version par défaut, soit elles devraient vous indiquer explicitement d'installer tensorflow-gpu-1.4 (par exemple) et non tensorflow-gpu.

Appuyant le commentaire de bwesons. J'ai CUDA 8.0 et Tensorflow 1.3. J'ai suivi les instructions d'installation actuelles pour TF 1.5 (GPU, ubuntu, virtualenv) et il se casse comme décrit ci-dessus. Revenir à TF 1.3 jusqu'à ce que cela soit résolu.

@aipeteryao Cela a résolu le

pip3 uninstall tensorflow-gpu
pip3 install --upgrade tensorflow-gpu==1.4

La page d'installation d'Ubuntu doit être mise à jour : https://www.tensorflow.org/install/install_linux
Étant donné que TensorFlow 1.5 attend Cuda 9.0 ( PAS 9.1 ), ainsi que cuDNN 7

En fait, nous devrions voir le document officiel de tensorflow, il donne l'environnement de tensorflow (y compris python, gcc, cuda, cudnn, etc.).

@bwesen oui, vous aviez raison. Mon ordinateur a installé CUDA 8.0, cudnn 6.0, tensorflow 1.4.

Je pense que cette question devrait toujours être ouverte. Le commentaire de @bwesen est correct. La documentation vous dit d'installer Cuda 8.0 et d'utiliser pip install --upgrade tensorflow-gpu . En ce moment, cela vous donne tensorflow 1.5 qui ne fonctionne pas avec Cuda 8.0

ping @asimshankar

J'ai le même problème (avec cuda 9.1 + tensorflow 1.5). Je pense que pour le résoudre, une option consiste à rétrograder cuda à 9.0. L'autre option serait de rétrograder à la fois cuda à 8.0 et tensorflow à 1.4. Si vous avez déjà installé cuda 8.0, il vous suffit de modifier la variable d'environnement LD_LIBRARY_PATH (et CUDA_HOME ) pour qu'elle pointe vers le répertoire cuda 8.0 (c'est- /usr/local/cuda-8.0 dire

Je reçois ce problème (Cuda 9.1.85, cuDNN 7.05)

Essayé avec tensorflow 1.5, il s'est cassé. Désinstallé, installé 1.4 avec pip3 install --upgrade tensorflow-gpu==1.4 , toujours en panne.

@DylanDmitri 1.5 attend Cuda 9.0, pas 9.1

Avez-vous essayé avec les pilotes Cuda 9.0 ?

@DylanDmitri @mkaze Vous avez besoin de Cuda 9.0.

De plus, pour tous ceux qui ont des difficultés à installer les exigences, je suggère de vérifier votre installation cuDNN. Le fichier .deb n'a pas fonctionné pour moi car il n'a pas copié les fichiers au bon endroit. J'ai dû utiliser le fichier .tgz et copier manuellement les fichiers selon les instructions de nVidia afin d'obtenir une installation fonctionnelle.

Pourquoi ne pas simplement installer cuda-9-0 ?

sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys \
     http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0

Pourquoi ne pas simplement installer cuda-9-0 ?

@abrahamrhoffman C'est facile pour tous ceux qui ont des privilèges sudo, mais qu'en est-il des personnes sur un système partagé comme un environnement de cluster avec des privilèges utilisateur simples. Dans ces cas, même si vous demandez à l'administrateur système d'installer des bibliothèques, la réponse sera probablement NON ! Puisqu'ils ont peur que cela puisse interférer avec les paramètres et les environnements d'autres utilisateurs.

@abrahamrhoffman Voudriez-vous également fournir une justification sur le vote

J'ai installé cuda-9.0 et cela ne fonctionne toujours pas. C'est vraiment irritant.

Veuillez vous assurer de définir votre variable PATH de manière appropriée, comme décrit ici : https://stackoverflow.com/questions/39287744/ubuntu-16-04-nvidia-toolkit-8-0-rc-darknet-compilation-error-expected -a/41290056#41290056

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

cuda 9.1 est la version actuelle. Je veux que TF l'utilise. Comment?

Même tf-nightly-gpu ne cherche pas cuda 9.1. Meh

J'ai essayé des liens symboliques de tous les noms de fichiers 9.0 vers tous les noms de fichiers 9.1 et cela n'a pas fonctionné. En fin de compte, TF connaît la vraie version. Le référentiel n'a même plus la version 9.0, donc j'ai peur de casser mes données nvidia si je supprime la version 9.1, puis l'installe manuellement.

Je le répare pour l'instant en :

Téléchargez deb (réseau) à partir de : https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

Ensuite : dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

Ensuite : mise à jour d'aptitude

Ensuite : aptitude install cuda-9-0

J'ai d'abord installé tensorflow 1.5, il s'est cassé et j'obtiens l'erreur suivante :
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
puis j'ai désinstallé, installé 1.4 avec pip install --upgrade tensorflow-gpu==1.4, cela n'a pas fonctionné, et j'obtiens l'erreur suivante :
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

@xiezhongzhao Quelle version de Cuda utilisez-vous ? Pour tensorflow 1.5 vous devez avoir installé le Cuda 9.0 et pour tensorflow 1.4 vous devez utiliser cuda 8.0. Si la version tensorflow et la version cuda sont compatibles, vérifiez les variables d'environnement, c'est-à-dire CUDA_HOME et LD_LIBRARY_PATH .

@mkaze j'ai utilisé Cuda9.1

@xiezhongzhao Installez Cuda 9.0 et tout devrait bien se

@mkaze Merci beaucoup

Je reçois également ce problème et j'ai du mal à le résoudre.

$ pip3 install tensorflow-gpu
$ python3
>>> import tensorflow
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/home/ubuntu/.local/lib/python3.5/site-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

J'ai installé en suivant ces instructions
https://www.tensorflow.org/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support

Je pense avoir installé les bonnes versions de nvidia. les noms de fichiers étaient
cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
et cudnn-9.0-linux-x64-v7.tgz (version 7.0.5)

J'ai défini le chemin selon ces instructions sur les documents tensorflow et j'ai également essayé les instructions données ci-dessus par abrahamrhoffman .

Lorsque j'exécute ldconfig -v, j'obtiens des bibliothèques 9.0, mais je ne vois pas libcublas.so.9.0

/usr/local/cuda-9.0/targets/x86_64-linux/lib:
    libaccinj64.so.9.0 -> libaccinj64.so.9.0.176
    libOpenCL.so.1 -> libOpenCL.so.1.0.0
    libnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0
    libcuinj64.so.9.0 -> libcuinj64.so.9.0.176
    libcudart.so.9.0 -> libcudart.so.9.0.176
/usr/local/cuda-9.1/targets/x86_64-linux/lib:
    libnppif.so.9.1 -> libnppif.so.9.1.85
    libcusparse.so.9.1 -> libcusparse.so.9.1.85
    libcusolver.so.9.1 -> libcusolver.so.9.1.85
    libnpps.so.9.1 -> libnpps.so.9.1.85
    libnppial.so.9.1 -> libnppial.so.9.1.85
    libnvgraph.so.9.1 -> libnvgraph.so.9.1.85
    libcuinj64.so.9.1 -> libcuinj64.so.9.1.85
    libaccinj64.so.9.1 -> libaccinj64.so.9.1.85
    libnppicc.so.9.1 -> libnppicc.so.9.1.85
    libcudart.so.9.1 -> libcudart.so.9.1.85
    libnppc.so.9.1 -> libnppc.so.9.1.85
    libnppicom.so.9.1 -> libnppicom.so.9.1.85
    libOpenCL.so.1 -> libOpenCL.so.1.0.0
    libnppig.so.9.1 -> libnppig.so.9.1.85
    libnvToolsExt.so.1 -> libnvToolsExt.so.1.0.0
    libnppidei.so.9.1 -> libnppidei.so.9.1.85
    libcurand.so.9.1 -> libcurand.so.9.1.85
    libnvblas.so.9.1 -> libnvblas.so.9.1.128
    libnvrtc.so.9.1 -> libnvrtc.so.9.1.85
    libnppitc.so.9.1 -> libnppitc.so.9.1.85
    libnppist.so.9.1 -> libnppist.so.9.1.85
    libcublas.so.9.1 -> libcublas.so.9.1.128
    libnppim.so.9.1 -> libnppim.so.9.1.85
/sbin/ldconfig.real: /usr/local/cuda-9.1/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link

    libcudnn.so.7 -> libcudnn.so.7.0.5
    libcufftw.so.9.1 -> libcufftw.so.9.1.85
    libcufft.so.9.1 -> libcufft.so.9.1.85
    libnppisu.so.9.1 -> libnppisu.so.9.1.85
    libnvrtc-builtins.so.9.1 -> libnvrtc-builtins.so.9.1.85

Je n'ai pas installé 9.1, du moins pas intentionnellement. Il s'agit d'une instance amazon ec2 avec stock ubuntu 16.04.
nvidia-smi renvoie également un GPU, il s'agit d'une instance g3.4xlarge

toute orientation est grandement appréciée.

Selon le guide CUDNN à l'adresse :

http://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

Vous devez copier les fichiers décompressés (à partir du répertoire que vous avez exécuté $ tar -xzvf cudnn-9.0-linux-x64-v7.tgz ou similaire) dans les sous-répertoires /usr/local/cuda :

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h
/usr/local/cuda/lib64/libcudnn*

Merci pour la réponse @entropy43.

J'aurais dû être plus précis. J'ai fait ces deux commandes cp et les commandes chmod après tar . Quand je regarde dans le dossier cuda où j'ai exécuté la commande tar comme ls cuda/lib64 je vois
libcudnn.so libcudnn.so.7 libcudnn.so.7.0.5 libcudnn_static.a

J'ai également essayé cette section à partir de la doc nvidia
2.3.2. Installing from a Debian File

et les tests passent ici en 2.4. Verifying

Tout conseil pour obtenir cette lib est apprécié

Quelqu'un pourrait-il résumer où cela se situe actuellement? J'utilise TF1.3 + cuda 8 sans problème. J'aimerais mettre à niveau, mais il semble que le processus d'installation des nouvelles versions soit complètement interrompu. Conseils?

Semblable à ce que Yazabazra demande ci-dessus :
TF1.6 Ubuntu 16.04
nvcc -V
nvcc : pilote de compilateur NVIDIA (R) Cuda
Copyright (c) 2005-2017 NVIDIA Corporation
Construit le Ven_Nov__3_21:07:56_CDT_2017
Outils de compilation Cuda, version 9.1, V9.1.85
Ce qui a nécessité un pilote d'affichage Nvidia 390+
Critique à voir : https://devtalk.nvidia.com/default/topic/1000340/cuda-setup-and-installation/-quot-nvidia-smi-has-failed-because-it-couldn-t-communicate-with -le-pilote-nvidia-quot-ubuntu-16-04/post/5243047/#5243047

petit pour ajouter à tout cela,, Après beaucoup de tracas, j'ai mis Nvidia à jour vers la dernière version, voir ci-dessus, car le document TF indiquait qu'il y avait des bogues dans une version antérieure.

Maintenant j'obtiens le :
ImportError : libcublas.so.9.0 : impossible d'ouvrir le fichier d'objet partagé : aucun fichier ou répertoire de ce type
Échec du chargement de l'environnement d'exécution natif TensorFlow.

Ce qui semble être une discordance entre 9.0 (TF veut) et 9.1 qui est la plus récente de Nvidia.
Il semblerait préférable de fonctionner avec 9.1 mais je préfère éviter de construire TF à partir de la source et il semble que cela ne le résout peut-être pas de toute façon.

Ce combo peut-il fonctionner avec un package binaire ?
TF 1.6 Cuda 9.1 ??

Remarque supplémentaire et prudence pour ceux qui regardent ici .. après la mise à niveau de mon contenu Nvidia, mes anciennes versions de TF dans des env conda séparés ne fonctionnent plus comme le veut l'ancien TF : ImportError : libcublas.so.8.0 : impossible d'ouvrir le fichier d'objet partagé : aucun fichier de ce type ou répertoire
donc 9.1 ne le coupera pas .. que diriez-vous de spécifier supérieur à ?? vs versions spécifiques ? juste une suggestion.. En attendant je suis mort dans l'eau..

Et c'est pourquoi la disponibilité d'un binaire prenant en charge la 9.1 serait bien : (à partir des notes de version TF1.6)

L'utilisation de XLA:GPU avec CUDA 9 et CUDA 9.1 entraîne des résultats erronés et/ou
Échecs CUDA_ILLEGAL_ADDRESS.

Google a découvert à la mi-décembre 2017 que le compilateur PTX-to-SASS dans CUDA 9
et CUDA 9.1 ne calcule parfois pas correctement le bit de retenue lorsque
décomposition des calculs d'adresses 64 bits avec de grands décalages (par exemple load [x + large_constant]) en arithmétique 32 bits dans SASS.

En conséquence, ces versions de ptxas compilent mal la plupart des programmes XLA qui utilisent
plus de 4 Go de mémoire temporaire. Cela entraîne des résultats erronés et/ou
Échecs CUDA_ERROR_ILLEGAL_ADDRESS.

Un correctif dans CUDA 9.1.121 est attendu fin février 2018. Nous ne prévoyons pas de
correctif pour CUDA 9.0.x. Jusqu'à ce que le correctif soit disponible, la seule solution consiste à
rétrograder à CUDA 8.0.x
ou désactivez XLA:GPU.

Peut-être que l'un des noctambules le fait ?

Une autre solution? peut-on installer plusieurs révisions de Cuda puisque TF semble rechercher des Rev spécifiques ? Si oui, des conseils pour savoir comment faire ?

Donc, idéalement, je pourrais exécuter TF 1.4 (qui nécessite actuellement Cuda 8.0) dans un environnement conda et TF 1.6 (qui nécessite actuellement Cuda 9.0) dans un autre ?

Je viens donc d'ajouter sudo apt-get -y install cuda-toolkit-9.0 et je suis opérationnel avec TF1.6

@dartdog après avoir installé cuda-toolkit-9.0, avez-vous rencontré le problème ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory ?

@dartdog

sudo apt-get install cuda-7-0
vim ~/.bashrc
export PATH=/usr/local/cuda-7.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda7.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Ceci est certainement censé être inclus dans la documentation de tensorflow, comme l'a dit @bwesen. Il doit également être inclus dans la liste des erreurs. Est-il possible pour nous de le faire de toute façon? Je pense que je vais ouvrir un nouveau numéro, en demandant soit d'ajouter la prise en charge de cuda 9.1, soit de mentionner que vous avez besoin de cuda 9.0 spécifiquement dans la documentation, et de l'inclure également dans la liste des erreurs.

Ok les gars. J'ai maintenant ouvert un nouveau numéro sur https://github.com/tensorflow/tensorflow/issues/17629.

Je gérais aussi ce problème. Ce qui a fonctionné pour moi avec tensorflow-gpu 1.6 :

  • J'ai téléchargé la boîte à outils de l' archive en tant que 9.0 mais elle a été installée en tant que 9.1 (je ne sais pas pourquoi...)
  • libcublas.so.9.0 toujours introuvable
  • Exécutez : sudo apt-get install cuda-libraries-9-0 comme suggéré à la fin des instructions d'installation.
  • Le problème semble avoir été résolu.

Si vous voulez que tensorflow fonctionne avec votre version CUDA, vous devez d'abord le désinstaller puis le compiler à partir des sources et spécifier la version CUDA lors de l'exécution de ./configure
Des informations détaillées sont disponibles ici : https://www.tensorflow.org/install/install_sources

J'essaye ce lien (qui construit tensorflow manuellement)

Cela peut prendre un peu plus de temps, mais vous pouvez définir les versions mineures de cette façon.

@mldm4 en fait, la commande sudo apt-get install cuda probablement installé 9.1 pour vous car vous l'aviez également dans votre système. J'ai eu le même problème, et j'ai fait sudo apt-get install cuda-9-0 pour installer une version spécifique (j'avais aussi téléchargé depuis l'archive).
Je pense que la commande que vous avez faite ( sudo apt-get install cuda-libraries-9-0 ) télécharge également cuda 9.0.
Ce problème n'est pas résolu, comme je l'ai mentionné dans le problème 17629, je sais que le problème est que TensorFlow attend la version 9.0, alors que j'avais 9.1. Le problème est de le mentionner plus clairement dans la documentation et de l'inclure dans les problèmes d'installation courants au bas de la documentation, ou de mettre à jour tensorflow pour accepter Cuda 9.1.

donc pas encore de solution ?

@fil :

* S'il vous plaît lire attentivement les messages! *

C'est votre travail de lire le fil et de découvrir la solution ; pas simplement faire défiler jusqu'à la fin.

@abrahamrhoffman c'est impoli.

Je viens de changer mon batchrc de cuda-9.1 à juste cuda. Ensuite, mon tensorflow est capable de trouver le libcublas.so.9.0

juste pour info : le site nvidia pour le téléchargement de cuda-9.0 est en train de télécharger cuda-9.1. https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal

@DanlanChen C'est probablement parce que vous avez également installé 9.1. Pour installer la 9.0, dans les étapes de téléchargement, faites sudo apt-get install cuda-9-0 au lieu de sudo apt-get install cuda .

@ cubetastic33 J'ai rétrogradé ma version de tensorflow et j'utilise cuda8.0, merci quand même.

@DanlanChen mais alors, je suppose qu'il est préférable d'utiliser la dernière version. Donc, si jamais vous souhaitez mettre à niveau, vous savez maintenant quoi faire ! :le sourire:

Je suis confronté au même problème, mais j'essaie d'exécuter tensorflow à l'aide de nvidia-docker. J'ai cuda-9-0 installé sur l'hôte, mais lorsque j'essaie d'exécuter mon conteneur Docker, j'obtiens

ImportError: libcuda.so.1: cannot open shared object file: No such file or directory

@magick93 et tout ça

ÉCOUTER! Tout ce dont vous avez besoin est de rétrograder votre cuda 9.1 -> cuda 9.0. C'est ça! Faites-le (si vous avez téléchargé cuda 9.1 avant cela, vous pouvez exécuter la commande suivante dans votre terminal):

sudo apt-get install cuda-9-0 et supprimez cuda 9.1 par rm -rf.

Au fait, n'oubliez pas de changer $PATH dans votre ~/.bashrc (9.1 -> 9.0).

Salut @Oktai15

ÉCOUTER! Tout ce dont vous avez besoin est de rétrograder votre cuda 9.1 -> cuda 9.0. C'est ça! Fais-le

Oui, je l'ai fait - plusieurs fois.

sudo apt-get install cuda-9-0
[sudo] password for anton: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
cuda-9-0 is already the newest version (9.0.176-1).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
$ ldconfig -p | grep cuda
    libnvrtc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so.9.0
    libnvrtc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc.so
    libnvrtc-builtins.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.9.0
    libnvrtc-builtins.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvrtc-builtins.so
    libnvgraph.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so.9.0
    libnvgraph.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvgraph.so
    libnvblas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so.9.0
    libnvblas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvblas.so
    libnvToolsExt.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so.1
    libnvToolsExt.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnvToolsExt.so
    libnpps.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so.9.0
    libnpps.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnpps.so
    libnppitc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so.9.0
    libnppitc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppitc.so
    libnppisu.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so.9.0
    libnppisu.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppisu.so
    libnppist.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so.9.0
    libnppist.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppist.so
    libnppim.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so.9.0
    libnppim.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppim.so
    libnppig.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so.9.0
    libnppig.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppig.so
    libnppif.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so.9.0
    libnppif.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppif.so
    libnppidei.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so.9.0
    libnppidei.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppidei.so
    libnppicom.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so.9.0
    libnppicom.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicom.so
    libnppicc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so.9.0
    libnppicc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppicc.so
    libnppial.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so.9.0
    libnppial.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppial.so
    libnppc.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so.9.0
    libnppc.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libnppc.so
    libicudata.so.55 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.55
    libcusparse.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so.9.0
    libcusparse.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusparse.so
    libcusolver.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so.9.0
    libcusolver.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcusolver.so
    libcurand.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so.9.0
    libcurand.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcurand.so
    libcuinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so.9.0
    libcuinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcuinj64.so
    libcufftw.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so.9.0
    libcufftw.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufftw.so
    libcufft.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so.9.0
    libcufft.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcufft.so
    libcudnn.so.7 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudnn.so.7
    libcudart.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so.9.0
    libcudart.so.7.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so.7.5
    libcudart.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcudart.so
    libcudart.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudart.so
    libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
    libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so
    libcublas.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so.9.0
    libcublas.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libcublas.so
    libaccinj64.so.9.0 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so.9.0
    libaccinj64.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libaccinj64.so
    libOpenCL.so.1 (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1
    libOpenCL.so (libc6,x86-64) => /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so

Pourtant, je ne peux même pas exécuter ce simple script tensorflow, car il en résulte que j'obtiens ImportError: No module named tensorflow.python.client

from tensorflow.python.client import device_lib

def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']

get_available_gpus()

J'ai eu le même problème que tout le monde ici, l'installation de la version 9.0 a aidé, mais j'ai ensuite eu d'autres problèmes.
Ensuite, j'ai suivi cela et cela a finalement fonctionné pour moi.

@Oktai15 ne rm -rf votre système ? Soyez plus clair ici, car les gens pourraient l'essayer sans aller dans le répertoire requis et finir par vider leur dossier personnel.

@magick93 votre problème semble être autre chose, pas la version CUDA.

J'ai eu le même problème, je pense avoir résolu en changeant, cette combinaison fonctionne pour moi

Ubuntu 16, cuda 9.0, cudnn 7.0, python 3,5, tensorflow 1.6

Si vous installez un nouveau cuda alors que vous avez encore la version précédente, assurez-vous de spécifier le chemin comme celui-ci

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

@Abduoit votre version d'Ubuntu n'a pas vraiment d'importance. Le fait est que TensorFlow 1.6 s'attend à ce que CUDA soit la version 9.0 et que cuDNN soit la version 7.0.4 (oui, la version 0.4 est importante)

Traceback (appel le plus récent en dernier) :
Fichier "utils.py", ligne 15, dans
importer tensorflow en tant que tf
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/__init__.py", ligne 24, dans
de tensorflow.python import *
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", ligne 49, dans
de tensorflow.python importer pywrap_tensorflow
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", ligne 74, dans
augmenter ImportError (msg)
ImportError : Traceback (appel le plus récent en dernier) :
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", ligne 58, dans
de tensorflow.python.pywrap_tensorflow_internal import *
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", ligne 28, dans
_pywrap_tensorflow_internal = swig_import_helper()
Fichier "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", ligne 24, dans swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, chemin d'accès, description)
ImportError : libcublas.so.9.0 : impossible d'ouvrir le fichier d'objet partagé : aucun fichier ou répertoire de ce type

Échec du chargement de l'environnement d'exécution natif TensorFlow.

Voir https://www.tensorflow.org/install/install_sources#common_installation_problems
sudo apt-get install cuda-7-0
vim ~/.bashrc
export CHEMIN=/usr/local/cuda-7.0/bin${CHEMIN:+:${CHEMIN}}
exporter LD_LIBRARY_PATH=/usr/local/cuda7.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CHEMIN=/usr/local/cuda-9.0/bin${CHEMIN:+:${CHEMIN}}
exporter LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PA
pour certaines raisons et solutions courantes. Inclure toute la trace de la pile
au-dessus de ce message d'erreur lorsque vous demandez de l'aide.

Comme @pascalwhoop l'a mentionné, j'ai suivi les instructions ici http://www.python36.com/install-tensorflow141-gpu/ pour créer Tensorflow à partir de la source.

Chaque fois qu'il disait cuda 9.0, j'ai changé pour 9.1, et cudnn 7.0 j'ai mis 7.1.2.

A bien fonctionné, jusqu'à présent!

@SAGGSOC pourquoi installez-vous cuda 7.0 ? Vous avez besoin de CUDA 9.0 et CuDNN 7.0.4

Tous ceux qui ont eu des problèmes : qui sont prêts à en faire une image de docker solide qui est partagée avec la communauté. Faites plutôt une extraction d'image de 6 Go une fois que cela fonctionne que DLing 5 versions de CuDNN avant que les choses ne fonctionnent.

https://github.com/pascalwhoop/tf_openailab_gpu_docker

J'ai commencé il y a quelque temps, mais j'ai arrêté à cause d'un changement d'orientation du projet. Mais je pense que cela vaut la peine de poursuivre. Évite de trouver la bonne combinaison de 17 pièces mobiles loin de la plupart des personnes.

Juste pour clarifier quelques choses pour tous ceux qui pourraient tomber sur ce post. J'ai installé dans mon système cuda-8.0, cuda-9.0, cuda-9.1. Vous n'avez rien à supprimer pour que cela fonctionne avec tensorflow. Au lieu de cela, s'il vous manque cuda-9.0 sur votre système, comme d'autres l'ont déjà souligné, vous devrez l'installer, ce qui est une condition préalable au bon fonctionnement de tensorflow.

Si vous avez cuda-9.0 installé sur votre système et que tensorflow se plaint à nouveau de libcublas.so.9.0 comme d'autres l'ont dit, exposez-le pendant l'exécution via votre variable d'environnement LD_LIBRARY_PATH dans votre .bashrc faites-le pointez sur /usr/local/cuda-9.0/lib64 . Cela devrait fonctionner même pour tensorflow 1.7.

Ce que j'ai essayé et échoué à accomplir est de construire à partir de la source. Pour une raison quelconque, bazel se termine toujours avec une erreur. Si vous essayez de compiler avec cuda-9.0/cuda-9.1 et cudnn7, il se plaint de gcc7. L'utilisation de la compilation gcc5 semble fonctionner correctement, mais à la fin, j'obtiens toujours une erreur et la construction échoue.

Ma question est de savoir si quelqu'un a réussi à compiler à partir des sources avec cuda-9.1/cuda-9.0 sans problème ?

Cela a fonctionné pour moi:

Téléchargez CUDA Toolkit 9.0 à partir de la section des versions précédentes de NVidia.
Puis:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub 
sudo apt-get update
sudo apt-get install cuda-9.0

Remarquez 9.0 à la dernière ligne ci-dessus.

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64

Ma configuration
Tensorflow 1.7
cuDNN 7.1.2
Ubuntu 16.04

etemiz,
J'ai la même configuration et cela fonctionne pour moi aussi.

Merci pour votre commentaire :)

J'ai eu la même situation. J'avais cuda 9.1 et tensorflow ne trouverait pas de bibliothèques pour cuda 9.0.

J'ai installé cuda 9.0 avec la commande : sudo apt-get install cuda-libraries-9-0

Cela a résolu mon problème.

Avec cuda 8 et 9.0 installés, le réglage de LD_LIBRARY_PATH dans .bashrc et .profile ne fonctionne pas. Alors, j'ai mis
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 dans le champ de variable d'environnement pycharm et cela fonctionne.

ce qui précède a fonctionné pour l'installation sur Ubuntu Server 17. à savoir,

  • installer cuda-9.0 (PAS 9.1)
  • cuDNN v7.1.2 (21 mars 2018) pour CUDA 9.0
  • tout le reste selon les instructions d'installation officielles de tf

beaucoup plus facile que de compiler.

soyez prudent utilisateurs conda. J'ai rencontré le même problème et je me suis gratté la tête pendant deux jours, jusqu'à ce que finalement je découvre que la copie locale de libcudnn.so était utilisée par conda, sous :
/miniconda3/lib/libcudnn.so qui pointait vers libcudnn.so.7 qui pointait vers libcudnn.so.7.0.5
je ne me souviens pas qui et comment l'a placé là, mais à peu près il a surchargé la libcudnn.so.7.1.2 par défaut du système !!!

une fois retiré, tout fonctionne comme un charme :
tensorflow 1.7 ou 1.8-nightly, cuda-9.1, cudnn-7.1.2 sur Ubuntu 16.04

D'une manière ou d'une autre, j'ai résolu ce problème en installant :
cuda 9.1 (du gestionnaire de paquets),
cudnn 7.1 pour 9.1
et d'anaconda :
en utilisant cette commande par défaut 'conda install -c anaconda tensorflow-gpu'
cudatoolkit 9.0,
tensorflow 1.7,
tensorflow-gpu 1.7

J'ai utilisé Antergos linux, GTX 1060 sur mon PC. Cela fonctionnait aussi bien dans mon ordinateur portable (Xubuntu 18.04, GT 840m). Dans mon cahier j'ai utilisé :
cuda 9.1 (de nvidia ppa), cudnn 7.1 pour 9.1 (de nvidia web), et le reste était le même

Merci @Suananda ! Cela fonctionne comme par magie.

Si vous avez une ancienne version de CUDA, le lien de la bibliothèque peut pointer vers l'ancienne bibliothèque même si vous installez la nouvelle CUDA, surtout si vous l'installez manuellement. Essayez de supprimer votre ancienne installation, puis sudo ldconfig pour mettre à jour les liens dynamiques.

Pas encore de solution !?

Pour tous ceux qui pourraient tomber dessus, j'ai publié une roue communautaire du dernier tensorflow 1.8.0-rc1 construit avec cuda 9.1. Vous pouvez le trouver ici !

J'ai trouvé que la raison est ldconf, ldconfig est une commande de gestion de bibliothèque de liens dynamiques dont le but est de permettre à la bibliothèque de liens dynamiques d'être utilisée par le système.

Le ldconf par défaut ne recherche que /lib et /usr/lib, ainsi que le fichier de bibliothèque sous le répertoire répertorié dans le fichier de configuration /etc/ld. alors. conf.

donc tout cela est causé par la bibliothèque dynamique de CUDA dans le chemin CUDA installé tel que : /path/cuda-9.0/lib64 ou /path/cuda-9.0/lib. (par exemple, mon CUDA est installé dans /usr/local/cuda-9.0)

  1. si vous installez le manuel CUDA, après l'installation, vous devez ajouter le chemin de cuda/lib64 au fichier /etc/ld.so.conf
    sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
    ensuite
    sudo ldconfig

    bien sûr, vous pouvez ajouter le manuel du chemin, comme :
    vim /etc/ld.so.conf
    puis ajoutez le chemin '/usr/local/cuda-9.0/lib64' à la fin.
    sudo ldconfig
    après l'opération, rouvrir l'ipython ou pycharm ,
    importer tensorflow en tant que tf
    wow, tu vas apprécier !

  2. si vous installez CUDA par une commande telle que 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' ou d'autres, il peut ajouter automatiquement le chemin de la lib cuda au fichier /etc/ld.so.conf. mais par mesure de sécurité, vérifiez le fichier /etc/ld.so.conf et voyez si le chemin s'y ajoute .

@NYcleaner
Sur Ubuntu, il existe un fichier /etc/ld.so.conf.d/cuda-9-1.conf contenant :
/usr/local/cuda-9.1/targets/x86_64-linux/lib

Est-ce suffisant ou dois-je y ajouter le répertoire /usr/local/cuda-9.1/lib64/ ?

@sebma
vous devez y ajouter le chemin /usr/local/cuda-9.1/lib64/ , les fichiers * .so sont dans la lib64

sudo bash -c "echo /usr/local/cuda/lib64/ >/etc/ld.so.conf.d/cuda.conf"
sudo ldconfig

de https://gist.github.com/zhanwenchen/e520767a409325d9961072f666815bb8

@mashu Eh bien, l'autre option est que la communauté fournisse des roues pré-construites. Si vous lisez 2-3 fils ci-dessus, vous verrez également cela mentionné à nouveau.

@Suananda Merci, cela fonctionne pour moi dans un environnement tensorflow conda.
Suggérez aux gars officiels de modifier le guide d'installation " https://www.tensorflow.org/install/install_linux#InstallingAnaconda ", étape 4 de l'installation d'Anaconda, de " pip install --ignore-installed --upgrade tfBinaryURL " à " conda install -c anaconda tensorflow-gpu"

Softlink ne semble pas résoudre ce problème :

➜  cuda ls lib64 
libaccinj64.so                libcufftw_static.a     libnppial.so.9.2      libnppig_static.a    libnvblas.so.9.2
libaccinj64.so.9.2            libcuinj64.so          libnppial.so.9.2.88   libnppim.so          libnvblas.so.9.2.88
libaccinj64.so.9.2.88         libcuinj64.so.9.2      libnppial_static.a    libnppim.so.9.2      libnvgraph.so
libcublas_device.a            libcuinj64.so.9.2.88   libnppicc.so          libnppim.so.9.2.88   libnvgraph.so.9.2
libcublas.so                  libculibos.a           libnppicc.so.9.2      libnppim_static.a    libnvgraph.so.9.2.88
libcublas.so.9.0              libcurand.so           libnppicc.so.9.2.88   libnppist.so         libnvgraph_static.a
libcublas.so.9.2              libcurand.so.9.2       libnppicc_static.a    libnppist.so.9.2     libnvrtc-builtins.so
libcublas.so.9.2.88           libcurand.so.9.2.88    libnppicom.so         libnppist.so.9.2.88  libnvrtc-builtins.so.9.2
libcublas_static.a            libcurand_static.a     libnppicom.so.9.2     libnppist_static.a   libnvrtc-builtins.so.9.2.88
libcudadevrt.a                libcusolver.so         libnppicom.so.9.2.88  libnppisu.so         libnvrtc.so
libcudart.so                  libcusolver.so.9.2     libnppicom_static.a   libnppisu.so.9.2     libnvrtc.so.9.2
libcudart.so.9.2              libcusolver.so.9.2.88  libnppidei.so         libnppisu.so.9.2.88  libnvrtc.so.9.2.88
libcudart.so.9.2.88           libcusolver_static.a   libnppidei.so.9.2     libnppisu_static.a   libnvToolsExt.so
libcudart_static.a            libcusparse.so         libnppidei.so.9.2.88  libnppitc.so         libnvToolsExt.so.1
libcufft.so                   libcusparse.so.9.2     libnppidei_static.a   libnppitc.so.9.2     libnvToolsExt.so.1.0.0
libcufft.so.9.2               libcusparse.so.9.2.88  libnppif.so           libnppitc.so.9.2.88  libOpenCL.so
libcufft.so.9.2.88            libcusparse_static.a   libnppif.so.9.2       libnppitc_static.a   libOpenCL.so.1
libcufft_static.a             libnppc.so             libnppif.so.9.2.88    libnpps.so           libOpenCL.so.1.0
libcufft_static_nocallback.a  libnppc.so.9.2         libnppif_static.a     libnpps.so.9.2       libOpenCL.so.1.0.0
libcufftw.so                  libnppc.so.9.2.88      libnppig.so           libnpps.so.9.2.88    stubs
libcufftw.so.9.2              libnppc_static.a       libnppig.so.9.2       libnpps_static.a
libcufftw.so.9.2.88           libnppial.so           libnppig.so.9.2.88    libnvblas.so

J'ai encore :

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/local/lib/python3.6/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.6/imp.py", line 243, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/lib/python3.6/imp.py", line 343, 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:

quand je lance mon code directement sur l'environnement linux, tout va bien. Mais lorsque je lance sur le pycharm local via l'interpréteur distant, je rencontre le problème : ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory. "Failed to load the native TensorFlow runtime."

export CHEMIN=${CHEMIN}:/usr/local/cuda-9.0/bin
export CUDA_HOME=${CUDA_HOME}:/usr/local/cuda:/usr/local/cuda-9.0
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} :/usr/local/cuda-9.0/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

si vous utilisez pycharm - ajoutez-le à l'interpréteur

qu'en est-il f ** Je veux juste utiliser tensorflow1.8 et cuda9.1?

@dongzhuoyao Alors, quel est le problème ? regardez mon commentaire 6 fils ci-dessus et vous y trouverez votre solution !

Je suppose que le problème est réapparu avec cuda 9.2 et tensorflow-gpu 1.8 . Dans un virtualenv, j'obtiens :

>>> import tensorflow as tf
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

Mon dossier /usr/local/cuda-9.2/lib64 contient les libcublas suivantes :

$ ls /usr/local/cuda-9.2/lib64 | grep libcublas
libcublas_device.a
libcublas.so
libcublas.so.9.2
libcublas.so.9.2.113
libcublas.so.9.2.88
libcublas_static.a

Versions :

Ubuntu 16.04
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Nous aurons besoin d'une mise à jour de tensorflow-gpu pour utiliser cuda 9.2.

De plus, si je devais rétrograder vers cuda 9.0, devrais-je d'abord supprimer cuda 9.2 ou simplement installer 9.0 tout de suite ? Aurais-je des installations en conflit ?

@mebble Voilà : lien . C'est la roue tf 1.8 pour cuda 9.2.

si je devais revenir à cuda 9.0, devrais-je d'abord supprimer cuda 9.2

Ne pas rétrograder. Installez n'importe quelle autre version que vous voulez, ils seront installés à /usr/local/cuda-x.x

Merci! J'ai oublié de mentionner que j'utilise python 3.5.2 et pip 10.0.1 . Je pense que la roue est pour python 3.6 donc l'installation ne fonctionne pas. En avez-vous un pour 3.5 aussi ?

@kirk86 après avoir installé le whl que vous lui avez donné renvoie une erreur similaire pour libmpi.so.40
Je suis sur GPU CentOS et K80, cuda 9.2 et cudnn v7.1

Suggestion

Pour autant que je sache, vous pouvez avoir des sous-packages xxx, yyy, zzz etc. et les installer comme suit

pip install mainpackage[xxx]

De cette façon, différents back-ends coexistants peuvent être fournis. Tensorflow peut être construit avec différentes options, donc au moins quelques versions de cuda-toolkit pourraient être fournies de cette façon.

Le but du package est de gagner du temps lors de la construction, mais la construction de packages pour un ensemble de bibliothèques très spécifique qui s'installe correctement mais ne fonctionne pas est contre-productive. Il vaudrait mieux ne pas avoir un tel paquet en premier lieu.

@mebble vient de créer un environnement virtuel conda pour python 3.6. Assurez-vous que vous avez également installé sur votre système openmpi.

@pavan-08 Installez openmpi sur votre système également nccl 2.x quelle que soit la dernière version de nvidia. J'ai compilé tf avec la plupart des packages et des bibliothèques, il peut donc être utilisé avec hdfs, kafta, aws, etc. C'est pourquoi je demande libmpi.so car il provient de la bibliothèque openmpi.

Avec cuda 9.2 et tensorflow-gpu 1.8, je ne peux pas construire tensorflow

la sortie déclarée 'external/local_config_cuda/cuda/cuda/lib/libcudnn.so.7' est un lien symbolique suspendu

Le lien symbolique existe

Versions :

Ubuntu 17.10
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Cela fonctionne pour moi (tensorflow-gpu==1.8.0 et la version cuda est 9.0, installer dans anaconda)

export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/

suggestion de : https://stackoverflow.com/questions/48428415/importerror-libcublas-so-9-0-cannot-open-shared-object-file

@Jackiexiao Oui, c'est ce que j'allais dire. J'utilise un poste de travail, donc pour moi tout ce que j'avais à faire était d'utiliser CUDA 9.0 au lieu de 9.2 (puisque plusieurs versions de CUDA ont été installées)

Cela a fonctionné pour moi:
Étant donné que Tensorflow > 1.4 nécessite CUDA 9, j'ai désinstallé toutes les versions de CUDA :

  1. sudo rm -rf /usr/local/cuda*
  2. dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 sudo dpkg --purge

Installez exactement CUDA 9.0 et CuDNN 7.0.x et redémarrez.

Veuillez vous référer aux combinaisons de CUDA, CuDNN et Tensorflow .

Cette erreur se produit principalement en raison de combinaisons de versions incorrectes de Nvidia-driver, CUDA, CuDNN et Tensorflow-gpu
image

Merci!

| |
??
|
|
[email protected]
|

网易邮箱大师 定制

Le 18/08/2018 08:00, Dhruv Srivastava a écrit :

Veuillez vous référer aux combinaisons de CUDA et CuDNN.

Cette erreur se produit principalement en raison de combinaisons de versions incorrectes de Nvidia-driver, CUDA, CuDNN et Tensorflow-gpu

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub ou coupez le fil de discussion.

@dhruvhacks Bien. Je pense que les gens devraient installer la bonne version de tensorflow-gpu avec la bonne version cuda.

Je suis sur Ubuntu 18.08 et j'ai installé Cuda 9.0 sur :

/usr/local/cuda-9.0

J'ai décidé de chercher le libcublas.so.9.0 :

# build search index
updatedb
# find the "missing" file
locate libcublas.so.9.0

Cela m'a dit que le fichier était dans /usr/local/cuda-9.0/lib64/stubs/libcublas.so.9.0 , ce qui m'a aidé à réaliser que j'avais deux problèmes : dans ~/.bash_profile j'avais défini : export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/ , mais mon fichier était dans le stubs répertoire, j'avais donc besoin d'utiliser :

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/stubs/

Enfin, libcublas.so.9.0 appartenait à root, j'ai donc modifié les autorisations et le propriétaire du fichier :

sudo chown -R MY_USER:MY_GROUP /usr/local/cuda-9.0/
sudo chmod -R 777 /usr/local/cuda-9.0/

Et tout allait bien !

Avec cuda 8 et 9.0 installés, le réglage de LD_LIBRARY_PATH dans .bashrc et .profile ne fonctionne pas. Alors, j'ai mis
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 dans le champ de variable d'environnement pycharm et cela fonctionne.

Exactement, merci beaucoup d'avoir résolu le problème, j'ai passé des jours à résoudre ce problème. vraiment apprécier mon pote

Je rencontre également ce problème lorsque j'utilise PyCharm pour déboguer mon code sur un serveur distant (aws deep learning ami). La version cuda est 9.0 et le cudnn est 7.1.4 et tensorflow est 1.10.0 (pour gpu). Je peux importer tensorflow normalement par un terminal connecté à mon serveur mais je n'arrive pas à importer tensorflow dans la console python de PyCharm. Le problème survient à ce moment. Par conséquent, je ne peux pas déboguer avec PyCharm...
Ma solution est : entrez cette ligne dans le terminal après vous être connecté à votre serveur

sudo ldconfig /usr/local/cuda/lib64

Et j'ai référencé ce lien

@NYcleaner Merci beaucoup ! Ça aide! et j'ai trouvé que l'utilisation d'un lien symbolique fonctionne également.
sudo echo "/usr/local/cuda/lib64/" >> /etc/ld.so.conf
sudo ldconfig

C'est toujours un problème avec Cuda 9.1 et Tensorflow 1.11

cuda 10.0 tensorflow 1.11

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

Pourquoi ne pas simplement installer cuda-9-0 ?

sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys \
     http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0

Sous Ubuntu 18.04, cuda 9-0 n'est pas (officiellement) disponible. Cela fonctionne, cependant.

Salut tout le monde,
J'utilise PyTorch autant que possible, mais pour un projet particulier où je dois exporter un modèle (Keras) vers tensorflowjs, je suis obligé d'utiliser tf. La seule solution qui a bien fonctionné pour moi a été de construire à partir des sources, après avoir installé CUDA à partir du multivers Ubuntu, comme décrit ici :

https://medium.com/@asmello/how -to-install-tensorflow-cuda-9-1-into-ubuntu-18-04-b645e769f01d

Bonne chance!

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

Solution stupide

J'ai installé Cuda 10 et la dernière version de Tensor Flow, mais j'ai reçu ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , j'ai effectué le downgrade et je reçois toujours ce message...

J'ai installé Cuda 10 et la dernière version de Tensor Flow, mais j'ai reçu ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , j'ai effectué le downgrade et je reçois toujours ce message...

Pourriez-vous nous indiquer la version du système d'exploitation et la commande exacte que vous avez émise pour « rétrograder » ?

J'ai essayé Deepin 15.8 et Mint 19.1, je vais tester Windows 10 plus tard. La commande pip install --upgrade tensorflow-gpu==version , j'ai essayé les maîtres versions: 1.9.0, 1.10.1, 1.11.0 et 1.12.0. La version cuda et les drivers :

image

@Sphinxs , à mon avis, vous avez deux manières: a) de recompiler la roue python localement pour qu'elle pointe vers la version cuda installée ou b) d' installer cuda-9.0 comme je l'ai fait pour mon installation 18.04 et cela fonctionne toujours après des mois.

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

l'homme marque un point. TF PEUT être compilé pour fonctionner avec des versions CUDA plus modernes... pourquoi ne pas simplement l'offrir à la plupart des gens avec un package tensorflow-gpu-cuda110 ou quelque chose de temporaire jusqu'à ce que la bibliothèque puisse découvrir la version cuda sous-jacente de manière dynamique ?

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

J'en ai marre!!!!

J'en ai marre!!!!

Ce commentaire n'ajoute rien au problème. De plus, personne n'oblige personne à utiliser TF, mais si vous en avez vraiment besoin et que vous ne pouvez pas faire fonctionner les packages pip, pourquoi ne pas le construire vous-même ? C'est ce que j'ai fini par faire à un moment donné. J'ai vu qu'il y avait aussi des builds pris en charge par la communauté ici
https://github.com/tensorflow/tensorflow faites simplement défiler vers le bas.
Peut-être construire pour votre GPU et contribuer ?

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

J'en ai marre!!!!

Ceci est une page de problème. Veuillez indiquer vos problèmes afin qu'ils puissent être résolus ou, mieux encore, aider à les résoudre.

@raphaunix puis-je demander d'où vient ce graphique ?

J'ai fait fonctionner Tensorflow 1.11.0 en exécutant les commandes suivantes :

conda create -n tf python=2
conda activate tf
pip install tensorflow-gpu==1.11
conda install cudatoolkit==9.0

J'ai trouvé que la raison est ldconf, ldconfig est une commande de gestion de bibliothèque de liens dynamiques dont le but est de permettre à la bibliothèque de liens dynamiques d'être utilisée par le système.

Le ldconf par défaut ne recherche que /lib et /usr/lib, ainsi que le fichier de bibliothèque sous le répertoire répertorié dans le fichier de configuration /etc/ld. alors. conf.

donc tout cela est causé par la bibliothèque dynamique de CUDA dans le chemin CUDA installé tel que : /path/cuda-9.0/lib64 ou /path/cuda-9.0/lib. (par exemple mon CUDA est installé dans /usr/local/cuda-9.0)

1.si vous installez le manuel CUDA, après l'installation, vous devez ajouter le chemin de cuda/lib64 au fichier /etc/ld.so.conf
sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
ensuite
sudo ldconfig
bien sûr, vous pouvez ajouter le manuel du chemin, comme :
vim /etc/ld.so.conf
puis ajoutez le chemin '/usr/local/cuda-9.0' à la fin.
puis le mettre à jour
sudo ldconfig
après l'opération, rouvrir l'ipython ou pycharm ,
import tensorflow as tf
wow, tu vas apprécier !

si vous installez CUDA par une commande telle que 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' ou d'autres, il peut ajouter automatiquement le chemin de la lib cuda au fichier /etc/ld.so.conf. mais par mesure de sécurité, vérifiez le fichier /etc/ld.so.conf et voyez si le chemin s'y ajoute .

@jabalazs Au lieu de conda install cudatoolkit==9.0 j'ai essayé pip install cudatoolkit==9.0 mais cela n'a pas fonctionné, savez-vous pourquoi ?

J'ai trouvé que mon runtime sur colab n'utilisait pas de GPU, c'est pourquoi j'ai eu mon erreur

Une solution encore meilleure - supprimez tensorflow, installez pytorch
Pourquoi le tensorflow peut freiner si facilement ?
Pourquoi ne puis-je pas simplement l'installer et l'exécuter ?
Pourquoi est-ce si facile avec pytorch et imprévisible avec tf ? Wtf a tort?

Bonne solution @dodler ! mais je pense qu'il vous manque les commandes pour rendre ce bon conseil facile à suivre via xD.

pip uninstall tensorflow
pip install torch

Bon codage !

J'ai rencontré cette même erreur en essayant d'utiliser Thundersvm pour accélérer NuSVR avec des GPU sur Google Colab.
L'installation de Cuda 9.0 m'a résolu le problème.
Il suffit de suivre:

!wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64-deb

!ls # Check if required cuda 9.0 amd64-deb file is downloaded

!dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64-deb

!ls /var/cuda-repo-9-0-local | grep .pub

!apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub

!apt-get update

!sudo apt-get install cuda-9.0

Cette page vous a été utile?
0 / 5 - 0 notes