Tensorflow: ImportError: libcublas.so.9.0: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

Creado en 23 dic. 2017  ·  136Comentarios  ·  Fuente: tensorflow/tensorflow

Instalé tf-nightly build y obtengo el siguiente error al importar tensorflow.
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory .

Si verifico cuda 9, obtengo lo siguiente:

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

Eso se debe a una falta de coincidencia de nombres. libcublas.so.9.0 =! libcublas.so.9.1 ? Y si es así, ¿cómo podemos superar esto?

Comentario más útil

¿Lo has resuelto? Este problema se debe a que tensorflow-gpu-1.5 requiere cuda 9.0, por lo que debes instalar tensorflow-gpu-1.4. Y recuerda desinstalar tensorflow-gpu-1.5. Utilice este "pip install --upgrade tensorflow-gpu == 1.4"

Todos 136 comentarios

Creo que esto se debe al hecho de que tienes CUDA 9.1 y no 9.0, estoy enfrentando exactamente el mismo problema.

@Timonzimm Lo sé y creo que todo el problema es este maldito nombre libcublas.so.xxx que pone nvidia. Esto inherentemente es una falta de coincidencia en los sistemas Linux cada vez que cambia ese número, por lo que, dado que no puede encontrar las coincidencias exactas, cree que el archivo no existe y arroja el error.

Creo que debería usar el enlace de símbolo de '' cuda / '' a '' cuda / 9.1 ", o su versión cuda es demasiado nueva para la rama maestra de tensorflow

@ burui11087 Me olvidé por completo de los enlaces simbólicos. Gracias por recordarme.

¿Parece que esto está resuelto (y la causa principal fue una falta de coincidencia de la versión de CUDA - 9.0 vs 9.1)?
Cerrando esto porque tengo entendido que está resuelto, pero avíseme si me equivoco.

FYI @gunan @ av8ramit (que están trabajando en la próxima versión 1.5)

También me ocurre exactamente el mismo problema con kirk86. Para mí, instalé cuda toolkit 8.0 y cudnn 5.1.
Luego hice lo que ustedes dijeron arriba, todos no funcionan.

Para usar nightlies, debes tener CUDA 9.0 y cudnn 7 instalados.
@yangfengKAUST con la versión actual de cuda y cudnn instalado TF solo se queja de que no puede encontrar las versiones que espera.

@Timonzimm Estoy enfrentando el mismo problema. ¿Lo has descubierto?

Tengo versiones 8.0, 9.0, 9.1 instaladas + cudnn que parecen específicas para cada una. El enlace simbólico no funcionó desde las bibliotecas 9.1. Sospecho que a veces el enlace simbólico en LD_LIBRARY_PATH tampoco funciona cuando cambio de versión en el enlace / usr / local / cuda. Terminé haciéndolo de la manera de baja tecnología para cargar las bibliotecas en mi programa java hasta que pueda encontrar una forma más limpia de manejar las rutas dentro de 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 ¿Le gustaría saber que en su comentario anterior quiere decir que deberíamos degradar cuda a 9.0 y tensorflow 1.5 no funciona con cuda 9.1?

Ha cerrado este problema, pero no está claro cuál es la acción correcta que debemos tomar.

Nota: También tengo instalado cuda 9.1 en lugar de cuda 9.0.

Solo para su información, tengo ambos instalados. La construcción desde cero funcionará con cualquiera de los dos, pero los binarios nocturnos usan 9.0.

@AwasthiMaddy : Sí, los binarios de la versión de TensorFlow 1.5 están diseñados para CUDA 9.

¿Lo has resuelto? Este problema se debe a que tensorflow-gpu-1.5 requiere cuda 9.0, por lo que debes instalar tensorflow-gpu-1.4. Y recuerda desinstalar tensorflow-gpu-1.5. Utilice este "pip install --upgrade tensorflow-gpu == 1.4"

@aipeteryao - Gracias.

Alguien necesita arreglar la página https://www.tensorflow.org/install/install_linux si esto es cierto, simplemente seguí sus instrucciones exactamente y le digo que instale CUDA 8.0 (específicamente, no "el último CUDA").

Luego, tan pronto como haya terminado, aparece este error (está buscando cublas 9.0, que, por lo que puedo leer aquí, tampoco habría funcionado, ya que CUDA 9.1 es el valor predeterminado que obtiene de NVIDIA).

O las instrucciones de la página web deberían funcionar con la última versión predeterminada de todo, o deberían indicarle explícitamente que instale tensorflow-gpu-1.4 (por ejemplo) y no tensorflow-gpu ..

Secundando el comentario de bwesons. Tengo CUDA 8.0 y Tensorflow 1.3. Seguí las instrucciones de instalación actuales para TF 1.5 (GPU, ubuntu, virtualenv) y se rompe como se describe anteriormente. Volviendo a TF 1.3 hasta que esto se resuelva.

@aipeteryao ¡ Esto lo solucionó, gracias! Terminé desinstalando la última versión e instalando 1.4, en mi virtualenv.

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

La página de instalación de Ubuntu debe actualizarse: https://www.tensorflow.org/install/install_linux
Dado que TensorFlow 1.5 espera Cuda 9.0 (NO 9.1), así como cuDNN 7

De hecho, deberíamos ver el documento oficial de tensorflow, da el entorno de tensorflow (incluye python, gcc, cuda, cudnn, etc.).

@bwesen sí, tenías razón. Mi computadora instaló CUDA 8.0, cudnn 6.0, tensorflow 1.4.

Creo que este tema aún debería estar abierto. El comentario de @bwesen es correcto. Los documentos le dicen que instale Cuda 8.0 y use pip install --upgrade tensorflow-gpu . Ahora mismo eso le da tensorflow 1.5 que no funciona con Cuda 8.0

pinging @asimshankar

Tengo el mismo problema (con cuda 9.1 + tensorflow 1.5). Creo que para resolverlo, una opción es degradar cuda a 9.0. La otra opción sería degradar tanto cuda a 8.0 como tensorflow a 1.4. Si ya ha instalado cuda 8.0, solo necesita modificar la variable de entorno LD_LIBRARY_PATH (y CUDA_HOME ) para que apunte al directorio cuda 8.0 (es decir, /usr/local/cuda-8.0 ).

Recibo este problema (Cuda 9.1.85, cuDNN 7.05)

Probado con tensorflow 1.5, se rompió. Desinstalado, instalado 1.4 con pip3 install --upgrade tensorflow-gpu==1.4 , todavía está roto.

@DylanDmitri 1.5 espera Cuda 9.0, no 9.1

¿Ha probado con los controladores Cuda 9.0?

@DylanDmitri @mkaze Necesitas Cuda 9.0.

Además, para cualquiera que tenga problemas para instalar los requisitos, sugiero que verifique dos veces la instalación de cuDNN. El archivo .deb no me funcionó porque no copiaba los archivos en el lugar correcto. Tuve que usar el archivo .tgz y copiar manualmente los archivos de acuerdo con las instrucciones de nVidia para que la instalación funcionara.

¿Por qué no instalar 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

¿Por qué no instalar cuda-9-0?

@abrahamrhoffman Eso es fácil para cualquiera que tenga privilegios de sudo, pero ¿qué pasa con las personas en un sistema compartido como un entorno de clúster con privilegios de usuario simples? En esos casos, incluso si le pide al administrador del sistema que instale las bibliotecas, lo más probable es que la respuesta sea NO. Ya que temen que eso pueda interferir con la configuración y el entorno de otros usuarios.

@abrahamrhoffman ¿También le importaría proporcionar una justificación sobre el voto en contra?

Instalé cuda-9.0 y todavía no funciona. Esto es realmente irritante.

Asegúrese de configurar su variable PATH correctamente, como se describe aquí: 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 es la versión actual. Quiero que TF lo use. ¿Cómo?

Incluso tf-nightly-gpu no está buscando cuda 9.1. Meh

Probé enlaces simbólicos de todos los nombres de archivo 9.0 a todos los nombres de archivo 9.1 y no funcionó. Al final, TF conoce la verdadera versión. El repositorio ni siquiera tiene 9.0, así que me temo que romperé mis cosas de nvidia si elimino 9.1 y luego instalo manualmente 9.0.

Lo arreglo por ahora por:

Descargue deb (red) desde: https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

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

Entonces: actualización de aptitude

Entonces: aptitude install cuda-9-0

Primero instalé tensorflow 1.5, se rompió y aparece el siguiente error:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
luego desinstalé, instalé 1.4 con pip install --upgrade tensorflow-gpu == 1.4, no funcionó y aparece el siguiente error:
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

@xiezhongzhao ¿Qué versión de Cuda estás usando? Para tensorflow 1.5 debes tener instalado Cuda 9.0 y para tensorflow 1.4 debes usar cuda 8.0. Si la versión de tensorflow y la versión cuda son compatibles, verifique las variables de entorno, es decir, CUDA_HOME y LD_LIBRARY_PATH .

@mkaze usé Cuda9.1

@xiezhongzhao Instale Cuda 9.0 y debería estar bien. Tensorflow 1.5 no funciona con Cuda 9.1.

@mkaze Muchas gracias

También estoy recibiendo este problema y estoy luchando por resolverlo.

$ 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

Lo instalé siguiendo estas instrucciones
https://www.tensorflow.org/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support

Creo que instalé las versiones correctas de nvidia. los nombres de archivo eran
cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
y cudnn-9.0-linux-x64-v7.tgz (versión 7.0.5)

Configuré la ruta según esas instrucciones en los documentos de tensorflow y también probé las instrucciones que abrahamrhoffman dio arriba.

Cuando ejecuto ldconfig -v obtengo algunas bibliotecas 9.0, pero no veo 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

No instalé 9.1, al menos no intencionalmente. Esto está en una instancia de amazon ec2 con stock ubuntu 16.04.
nvidia-smi también devuelve una gpu, esta es una instancia g3.4xlarge

cualquier orientación es muy apreciada.

Según la guía CUDNN en:

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

Debe copiar los archivos descomprimidos (del directorio que ejecutó $ tar -xzvf cudnn-9.0-linux-x64-v7.tgz o similar) en los subdirectorios /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*

Gracias por la respuesta @ entropy43.

Debí haber sido más especifico. Hice esos dos comandos cp y chmod después de tar . Cuando miro en la carpeta cuda donde ejecuté el comando tar como ls cuda/lib64 veo
libcudnn.so libcudnn.so.7 libcudnn.so.7.0.5 libcudnn_static.a

Probé esta sección también del nvidia doc
2.3.2. Installing from a Debian File

y las pruebas pasan aquí en 2.4. Verifying

Se agradece cualquier consejo para conseguir esa lib.

¿Podría alguien resumir dónde se encuentra esto actualmente? Estoy usando TF1.3 + cuda 8 sin problema. Me gustaría actualizar, pero parece que el proceso de instalación para las versiones más nuevas está completamente roto. ¿Consejo?

Similar a lo que pregunta yazabazra arriba:
TF1.6 Ubuntu 16.04
nvcc -V
nvcc: controlador del compilador NVIDIA (R) Cuda
Copyright (c) 2005-2017 NVIDIA Corporation
Construido el Vie_Nov__3_21: 07: 56_CDT_2017
Herramientas de compilación Cuda, versión 9.1, V9.1.85
Que requirió un controlador de pantalla Nvidia 390+
Crítico para ver: https://devtalk.nvidia.com/default/topic/1000340/cuda-setup-and-installation/-quot-nvidia-smi-has-failed-because-it-couldn-t-communicate-with -el-controlador-nvidia-quot-ubuntu-16-04 / post / 5243047 / # 5243047

cachorro para agregar a todo, después de una gran cantidad de molestias, actualicé la Nvidia a la versión más reciente, ver más arriba, ya que el documento TF indicaba que había errores en una versión anterior.

Ahora obtengo el:
ImportError: libcublas.so.9.0: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
No se pudo cargar el tiempo de ejecución nativo de TensorFlow.

Lo que parece ser una falta de coincidencia entre 9.0 (TF quiere) vs 9.1, que es la Nvidia más actual.
Parecería mejor ejecutarlo con 9.1, pero prefiero evitar construir TF desde la fuente y parece que es posible que no lo solucione de todos modos.

¿Se puede hacer que este combo funcione con un paquete binario?
TF 1.6 Cuda 9.1 ??

Nota adicional y precaución para aquellos que buscan aquí ... después de actualizar mis cosas de Nvidia, mis versiones anteriores de TF en conda env por separado ya no funcionan como quiere el TF anterior: ImportError: libcublas.so.8.0: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
así que 9.1 no lo cortará ... ¿qué tal si especificas mayor que? vs versiones específicas? sólo una sugerencia .. Mientras tanto, estoy muerto en el agua ..

Y esta es la razón por la que la disponibilidad de un binario que admita 9.1 sería buena: (de las notas de la versión TF1.6)

El uso de XLA: GPU con CUDA 9 y CUDA 9.1 da como resultado resultados basura y / o
Fallos de CUDA_ILLEGAL_ADDRESS.

Google descubrió a mediados de diciembre de 2017 que el compilador PTX-to-SASS en CUDA 9
y CUDA 9.1 a veces no calcula correctamente el bit de acarreo cuando
descomponer los cálculos de direcciones de 64 bits con grandes desplazamientos (por ejemplo, cargar [x + large_constant]) en aritmética de 32 bits en SASS.

Como resultado, estas versiones de ptxas compilan mal la mayoría de los programas XLA que utilizan
más de 4 GB de memoria temporal. Esto da como resultado resultados basura y / o
Fallos de CUDA_ERROR_ILLEGAL_ADDRESS.

Se espera una corrección en CUDA 9.1.121 a fines de febrero de 2018. No esperamos una
corrección para CUDA 9.0.x. Hasta que la solución esté disponible, la única solución es
cambiar a CUDA 8.0.x
o deshabilite XLA: GPU.

¿Quizás uno de los nightlies lo hace?

¿Otra solución? ¿Se pueden instalar múltiples revisiones de Cuda ya que TF parece buscar Rev's específicas? Si es así, ¿algún consejo sobre cómo hacerlo?

Entonces, ¿idealmente podría ejecutar TF 1.4 (que actualmente requiere Cuda 8.0) en un entorno conda y TF 1.6 (que actualmente requiere Cuda 9.0) en otro?

Así que acabo de agregar sudo apt-get -y install cuda-toolkit-9.0 y estoy en funcionamiento con TF1.6

@dartdog después de instalar cuda-toolkit-9.0, ¿enfrentó el problema 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}}

Definitivamente se supone que esto está incluido en la documentación de tensorflow, como lo dijo @bwesen. También debe incluirse en la lista de errores. ¿Es posible que hagamos esto de todos modos? Creo que voy a abrir un nuevo problema, solicitando agregar soporte para cuda 9.1, o mencionar que necesita cuda 9.0 específicamente en los documentos, y también incluirlo en la lista de errores.

Ok muchachos. Ahora he abierto un nuevo problema en https://github.com/tensorflow/tensorflow/issues/17629.

También me estaba ocupando de este problema. Lo que funcionó para mí con tensorflow-gpu 1.6:

  • Descargué el kit de herramientas del archivo como 9.0 pero se instaló como 9.1 (no sé por qué ...)
  • Aún no se ha encontrado libcublas.so.9.0
  • Ejecute: sudo apt-get install cuda-libraries-9-0 como se sugiere al final de las instrucciones de instalación.
  • El problema parece estar resuelto.

Si desea que tensorflow funcione con su versión de CUDA, primero debe desinstalarlo, luego compilarlo desde la fuente y especificar la versión de CUDA mientras se ejecuta ./configure
Puede encontrar información detallada aquí: https://www.tensorflow.org/install/install_sources

Estoy probando este enlace (que construye tensorflow manualmente)

Puede que tarde un poco más, pero puede definir las versiones secundarias de esta forma.

@ mldm4 en realidad, el comando sudo apt-get install cuda probablemente instaló 9.1 porque también lo tenía en su sistema. Tuve el mismo problema e hice sudo apt-get install cuda-9-0 para instalar una versión específica (también la había descargado del archivo).
Creo que el comando que hiciste ( sudo apt-get install cuda-libraries-9-0 ) también descarga cuda 9.0.
Este problema no está resuelto, como mencioné en el número 17629, sé que el problema es que TensorFlow espera la versión 9.0, mientras que yo tenía la 9.1. El problema es mencionar esto más claramente en los documentos e incluirlo en los problemas comunes de instalación en la parte inferior de los documentos, o actualizar tensorflow para aceptar Cuda 9.1.

¿Así que todavía no hay solución?

@ hilo :

* ¡Por favor, lea atentamente las publicaciones! *

Es su trabajo leer el hilo y descubrir la solución; no simplemente desplácese hasta el final.

@abrahamrhoffman eso es grosero.

Acabo de cambiar mi batchrc de cuda-9.1 a solo cuda. Entonces mi tensorflow es capaz de encontrar libcublas.so.9.0

solo para su información: el sitio web de nvidia para descargar cuda-9.0 en realidad está descargando 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 Probablemente se deba a que también tienes la sudo apt-get install cuda-9-0 lugar de sudo apt-get install cuda .

@ cubetastic33 Bajé mi versión de tensorflow y uso cuda8.0, gracias de todos modos.

@DanlanChen pero supongo que se prefiere usar la última versión. Entonces, si alguna vez desea actualizar, ¡ahora sabe qué hacer! :sonrisa:

Estoy enfrentando el mismo problema, pero estoy tratando de ejecutar tensorflow usando nvidia-docker. Tengo cuda-9-0 instalado en el host, pero cuando intento ejecutar mi contenedor docker obtengo

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

¡@ magick93 y todo lo que aparece aquí!

¡ESCUCHA! Todo lo que necesita es degradar su cuda 9.1 -> cuda 9.0. ¡Eso es! Simplemente hágalo (si descargó cuda 9.1 antes de eso, puede ejecutar el siguiente comando en su terminal):

sudo apt-get install cuda-9-0 y elimine cuda 9.1 mediante rm -rf.

Por cierto, no olvides cambiar $ PATH en tu ~/.bashrc (9.1 -> 9.0).

Hola @ Oktai15

¡ESCUCHA! Todo lo que necesita es degradar su cuda 9.1 -> cuda 9.0. ¡Eso es! Solo hazlo

Sí, he hecho esto, muchas veces.

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

Sin embargo, ni siquiera puedo ejecutar este simple script de tensorflow, ya que resulta que obtengo 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()

Tuve el mismo problema que todos están teniendo aquí, la instalación de 9.0 ayudó, pero luego tuve otros problemas.
Luego seguí esto y finalmente funcionó para mí.

@ Oktai15 ¿ rm -rf elimina su sistema? Sea más claro aquí, porque las personas pueden intentarlo sin entrar en el directorio requerido y terminar vaciando su carpeta de inicio.

@ magick93, tu problema parece ser otra cosa, no la versión CUDA.

Tuve el mismo problema, creo que lo resolví con algunos cambios, esta combinación funciona para mí

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

Si instala nuevo cuda mientras aún tiene la versión anterior, asegúrese de especificar la ruta como esta

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, tu versión de Ubuntu realmente no importa. La cuestión es que TensorFlow 1.6 espera que CUDA sea la versión 9.0 y cuDNN sea la versión 7.0.4 (sí, 0.4 _does_ importa)

Rastreo (llamadas recientes más última):
Archivo "utils.py", línea 15, en
importar tensorflow como tf
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/__init__.py", línea 24, en
de la importación de tensorflow.python *
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", línea 49, en
desde tensorflow.python importar pywrap_tensorflow
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", línea 74, en
aumentar ImportError (msg)
ImportError: Traceback (última llamada más reciente):
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", línea 58, en
de tensorflow.python.pywrap_tensorflow_internal import *
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", línea 28, en
_pywrap_tensorflow_internal = swig_import_helper ()
Archivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", línea 24, en swig_import_helper
_mod = imp.load_module ('_ pywrap_tensorflow_internal', fp, nombre de ruta, descripción)
ImportError: libcublas.so.9.0: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

No se pudo cargar el tiempo de ejecución nativo de TensorFlow.

Consulte https://www.tensorflow.org/install/install_sources#common_installation_problems
sudo apt-get install cuda-7-0
vim ~ / .bashrc
export PATH = / usr / local / cuda-7.0 / bin $ {PATH: +: $ {PATH}}
exportar LD_LIBRARY_PATH = / usr / local / cuda7.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PATH}}
export PATH = / usr / local / cuda-9.0 / bin $ {PATH: +: $ {PATH}}
exportar LD_LIBRARY_PATH = / usr / local / cuda9.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PA
por algunas razones y soluciones comunes. Incluir todo el seguimiento de la pila
encima de este mensaje de error al pedir ayuda.

Como mencionó @pascalwhoop , seguí las instrucciones aquí http://www.python36.com/install-tensorflow141-gpu/ para compilar Tensorflow desde la fuente.

Siempre que decía cuda 9.0 cambiaba a 9.1, y cudnn 7.0 ponía 7.1.2.

¡Funcionó bien, hasta ahora!

@SAGGSOC ¿

Todos los que han tenido problemas: quién está dispuesto a convertir esto en una imagen sólida de Docker que se comparte con la comunidad. Prefiero hacer una extracción de imagen de 6 GB una vez que funcione que DLing 5 versiones de CuDNN antes de que las cosas funcionen.

https://github.com/pascalwhoop/tf_openailab_gpu_docker

Empecé hace un tiempo, pero me detuve debido a cambios en los enfoques del proyecto. Pero creo que vale la pena seguirlo. Mantiene todo el problema de encontrar la combinación correcta de 17 partes móviles lejos de la mayoría de las personas.

Solo para aclarar algunas cosas para cualquiera que pueda tropezar con esta publicación. Tengo en mi sistema instalado cuda-8.0, cuda-9.0, cuda-9.1. No tienes que eliminar nada para que funcione con tensorflow. En cambio, si le falta cuda-9.0 en su sistema, como ya han señalado otros, deberá instalarlo, que es un requisito previo para que tensorflow funcione correctamente.

Si tiene cuda-9.0 instalado en su sistema y tensorflow se queja de libcublas.so.9.0 nuevamente, como otros han dicho, exponga eso durante el tiempo de ejecución a través de su variable de entorno LD_LIBRARY_PATH en su .bashrc hágalo apunte a /usr/local/cuda-9.0/lib64 . Esto debería funcionar incluso para tensorflow 1.7.

Lo que intenté y no logré es compilar desde la fuente. Por alguna razón, bazel siempre sale con un error. Si intenta compilar con cuda-9.0 / cuda-9.1 y cudnn7, se queja de gcc7. El uso de la compilación gcc5 parece funcionar bien, pero al final siempre aparece un error y la compilación no se realiza correctamente.

Mi pregunta es si alguien ha logrado compilar desde la fuente con cuda-9.1 / cuda-9.0 sin problemas.

Esto funcionó para mí:

Descargue CUDA Toolkit 9.0 de la sección de versiones anteriores de NVidia.
Entonces:

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

Observe 9.0 en la última línea de arriba.

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

Mi configuración
Tensorflow 1.7
cuDNN 7.1.2
Ubuntu 16.04

etemiz,
Tengo la misma configuración y también me funciona.

Gracias por tu publicación :)

Tuve la misma situación. Tenía cuda 9.1 y tensorflow no encontraba bibliotecas para cuda 9.0.

He instalado cuda 9.0 con el comando: sudo apt-get install cuda-libraries-9-0

Eso resolvió mi problema.

Con cuda 8 y 9.0 instalados, configurar LD_LIBRARY_PATH en .bashrc y .profile no funciona. Entonces, puse
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 en el campo de variable de entorno pycharm y funciona.

lo anterior funcionó para instalar en Ubuntu Server 17. a saber,

  • instalación de cuda-9.0 (NO 9.1)
  • cuDNN v7.1.2 (21 de marzo de 2018) para CUDA 9.0
  • todo lo demás de acuerdo con las instrucciones de instalación oficiales de tf

mucho más fácil que compilar.

tenga cuidado con los usuarios de conda. Tuve el mismo problema y estuve rascándome la cabeza durante dos días, hasta que finalmente descubrí que conda usaba una copia local de libcudnn.so, en:
/miniconda3/lib/libcudnn.so que apuntó a libcudnn.so.7 que apuntó a libcudnn.so.7.0.5
No recuerdo quién y cómo lo colocó allí, pero prácticamente sobrecargó el sistema predeterminado libcudnn.so.7.1.2 !!!

una vez eliminado, todo funciona a las mil maravillas:
tensorflow 1.7 o 1.8-nightly, cuda-9.1, cudnn-7.1.2 en ubuntu 16.04

De alguna manera, resolví esto instalando:
cuda 9.1 (desde el administrador de paquetes),
cudnn 7.1 para 9.1
y de anaconda:
usando este comando predeterminado 'conda install -c anaconda tensorflow-gpu'
cudatoolkit 9.0,
tensorflow 1.7,
tensorflow-gpu 1.7

Usé Antergos linux, GTX 1060 en mi PC. También funcionó en mi portátil (Xubuntu 18.04, GT 840m). En mi cuaderno utilicé:
cuda 9.1 (de nvidia ppa), cudnn 7.1 para 9.1 (de nvidia web), y el resto era el mismo

¡Gracias @Suananda! Funciona como por arte de magia.

Si tiene una versión anterior de CUDA, el enlace de la biblioteca puede apuntar a la biblioteca anterior incluso si instala la CUDA más nueva, especialmente si la instala manualmente. Intente eliminar su instalación anterior y luego sudo ldconfig para actualizar los enlaces dinámicos.

¿¡Todavía no hay solución !?

Para cualquiera que pueda tropezar con esto, he lanzado una rueda comunitaria del último tensorflow 1.8.0-rc1 construido con cuda 9.1. ¡Puedes encontrarlo aquí !

He descubierto que la razón es ldconf, ldconfig es un comando de administración de biblioteca de vínculos dinámicos cuyo propósito es permitir que el sistema utilice la biblioteca de vínculos dinámicos.

El ldconf predeterminado solo busca / lib y / usr / lib, así como el archivo de biblioteca bajo el directorio listado en el archivo de configuración / etc / ld. entonces. conf.

por lo que todo esto es causado por la biblioteca dinámica de CUDA en la ruta de CUDA instalada, como: /path/cuda-9.0/lib64 o /path/cuda-9.0/lib. (por ejemplo, mi CUDA está instalado en /usr/local/cuda-9.0)

  1. si instala el manual de CUDA, luego de la instalación, debe agregar la ruta de cuda / lib64 al archivo /etc/ld.so.conf
    sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
    entonces
    sudo ldconfig

    por supuesto, puede agregar el manual de ruta, como:
    vim /etc/ld.so.conf
    luego agregue la ruta '/usr/local/cuda-9.0/lib64' al final.
    sudo ldconfig
    después de la operación, vuelva a abrir el ipython o pycharm,
    importar tensorflow como tf
    guau, lo disfrutarás!

  2. si instala CUDA mediante un comando como 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' u otros, puede agregar la ruta de acceso cuda lib a /etc/ld.so.conf automáticamente. pero para estar seguro, verifique /etc/ld.so.conf y vea si la ruta se agrega.

@NYcleaner
En Ubuntu, hay un archivo /etc/ld.so.conf.d/cuda-9-1.conf que contiene:
/usr/local/cuda-9.1/targets/x86_64-linux/lib

¿Es esto suficiente o necesito agregarle el directorio /usr/local/cuda-9.1/lib64/ ?

@sebma
debe agregarle la ruta /usr/local/cuda-9.1/lib64/ , los archivos * .so están en 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 Bueno, la otra opción es que la comunidad proporcione ruedas prefabricadas. Si lee 2-3 hilos arriba, también verá que se menciona nuevamente.

@Suananda Gracias, me funciona en un entorno conda de tensorflow.
Sugiera a los chicos oficiales que modifiquen la guía de instalación " https://www.tensorflow.org/install/install_linux#InstallingAnaconda ", paso 4 de la instalación de Anaconda, desde "pip install --ignore-installed --upgrade tfBinaryURL" a "conda instalar -c anaconda tensorflow-gpu "

Softlink parece no resolver este problema:

➜  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

Aún tengo:

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:

cuando ejecuto mi código en el entorno Linux directamente, todo está bien. Pero cuando ejecuto el pycharm local a través del intérprete remoto, encuentro el problema: ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory. "Failed to load the native TensorFlow runtime."

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

si usa pycharm - agréguelo al intérprete

¿qué pasa con f ** solo quiero usar tensorflow1.8 y cuda9.1?

@dongzhuoyao Entonces, ¿cuál es el problema? ¡Mira mi comentario 6 hilos arriba y encontrarás tu solución allí!

Supongo que el problema ha vuelto a surgir con cuda 9.2 y tensorflow-gpu 1.8 . En un virtualenv, obtengo:

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

Mi carpeta /usr/local/cuda-9.2/lib64 tiene las siguientes libcublas:

$ 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

Versiones:

Ubuntu 16.04
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Necesitaremos una actualización de tensorflow-gpu para usar cuda 9.2.

Además, si tuviera que degradar a cuda 9.0, ¿tendría que eliminar primero cuda 9.2 o simplemente instalar 9.0 de inmediato? ¿Tendría instalaciones en conflicto?

@mebble Aquí tienes: enlace . Esa es la rueda tf 1.8 para cuda 9.2.

si tuviera que degradar a cuda 9.0, primero tendría que eliminar cuda 9.2

No rebajes. Instale cualquier otra versión que desee, se instalarán en /usr/local/cuda-x.x

¡Gracias! Olvidé mencionar que estoy usando python 3.5.2 y pip 10.0.1 . Creo que la rueda es para Python 3.6, por lo que la instalación no funciona. ¿Tienes uno para 3.5 también?

@ kirk86 después de instalar el whl que le dio, arroja un error similar para libmpi.so.40
Estoy en CentOS y K80 GPU, cuda 9.2 y cudnn v7.1

Sugerencia

Hasta donde yo sé, puede tener subpaquetes xxx, yyy, zzz, etc. e instalarlos de la siguiente manera

pip install mainpackage[xxx]

De esta manera se pueden proporcionar diferentes back-end coexistentes. Tensorflow se puede compilar con diferentes opciones, por lo que al menos se podrían proporcionar un par de compilaciones de cuda-toolkit de esta manera.

El objetivo del paquete es ahorrar tiempo de compilación, pero la compilación del paquete para un conjunto muy específico de bibliotecas que se instala bien, pero no funciona, es contraproducente. En primer lugar, sería mejor no tener ese paquete.

@mebble acaba de crear un entorno virtual conda para python 3.6. Asegúrese de que también ha instalado en su sistema openmpi.

@ pavan-08 Instale openmpi en su sistema también nccl 2.x lo que sea lo último de nvidia. He compilado tf con la mayoría de los paquetes y bibliotecas, por lo que se puede usar hdfs, kafta, aws, etc. Por eso pregunta libmpi.so porque es de la biblioteca openmpi.

Con cuda 9.2 y tensorflow-gpu 1.8 no puedo construir tensorflow

La salida declarada 'external / local_config_cuda / cuda / cuda / lib / libcudnn.so.7' es un enlace simbólico colgante

El enlace simbólico existe

Versiones:

Ubuntu 17.10
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Esto funciona para mí (tensorflow-gpu == 1.8.0 y la versión de cuda es 9.0, instalar en anaconda)

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

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

@Jackiexiao Sí, eso es lo que iba a decir. Estoy usando una estación de trabajo, así que todo lo que tenía que hacer era usar CUDA 9.0 en lugar de 9.2 (ya que se instalaron varias versiones de CUDA)

Esto funcionó para mí:
Debido a que Tensorflow> 1.4 requiere CUDA 9, desinstalé todas las versiones de CUDA:

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

Instale exactamente CUDA 9.0 y CuDNN 7.0.xy reinicie.

Consulte combinaciones de CUDA, CuDNN y Tensorflow .

Este error ocurre principalmente debido a combinaciones de versiones incorrectas de Nvidia-driver, CUDA, CuDNN y Tensorflow-gpu
image

¡Gracias!

| |
杨康
|
|
邮箱 : [email protected]
|

签名 由 网易 邮箱 大师 定制

El 18/08/2018 08:00, Dhruv Srivastava escribió:

Consulte combinaciones de CUDA y CuDNN.

Este error ocurre principalmente debido a combinaciones de versiones incorrectas de Nvidia-driver, CUDA, CuDNN y Tensorflow-gpu

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub o silencia el hilo.

@dhruvhacks Bueno. Creo que la gente debería instalar la versión correcta de tensorflow-gpu con la versión correcta cuda.

Estoy en Ubuntu 18.08 y tenía Cuda 9.0 instalado en:

/usr/local/cuda-9.0

Decidí buscar el libcublas.so.9.0 :

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

Eso me dijo que el archivo estaba en /usr/local/cuda-9.0/lib64/stubs/libcublas.so.9.0 , lo que me ayudó a darme cuenta de que tenía dos problemas: En ~/.bash_profile había configurado: export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/ , pero mi archivo estaba en stubs directorio, así que necesitaba usar:

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

Finalmente, libcublas.so.9.0 era propiedad de root, así que cambié los permisos y el propietario del archivo:

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

¡Y todo estuvo bien!

Con cuda 8 y 9.0 instalados, configurar LD_LIBRARY_PATH en .bashrc y .profile no funciona. Entonces, puse
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 en el campo de variable de entorno pycharm y funciona.

Exactamente, muchas gracias por resolver el problema, he pasado días para resolver esto. realmente aprecio amigo

También encuentro este problema cuando uso PyCharm para depurar mi código en un servidor remoto (aws deep learning ami). La versión cuda es 9.0 y cudnn es 7.1.4 y tensorflow es 1.10.0 (para gpu). Puedo importar tensorflow normalmente por terminal conectado a mi servidor, pero no puedo importar tensorflow en la consola de Python de PyCharm. El problema ocurre en este momento. Por lo tanto, no puedo depurar con PyCharm ...
Mi solución es : ingrese esta línea en la terminal después de conectarse a su servidor

sudo ldconfig /usr/local/cuda/lib64

Y hice referencia a este enlace

@NYcleaner ¡ Muchas gracias! ¡Ayuda! y encontré que solo usar un enlace simbólico también funciona.
sudo echo "/ usr / local / cuda / lib64 /" >> /etc/ld.so.conf
sudo ldconfig

Esto sigue siendo un problema con Cuda 9.1 y Tensorflow 1.11

cuda 10.0 tensorflow 1.11

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

¿Por qué no instalar 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

Bajo ubuntu 18.04 cuda 9-0 no está (oficialmente) disponible. Aunque funciona.

Hola a todos,
Utilizo PyTorch tanto como puedo, pero para un proyecto en particular donde necesito exportar un modelo (Keras) a tensorflowjs, me veo obligado a usar tf. La única solución que me ha funcionado bien ha sido compilar desde la fuente, después de instalar CUDA desde el multiverso de Ubuntu, como se describe aquí:

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

¡Bonne chance!

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

Solución estúpida

He instalado Cuda 10 y la última versión de Tensor Flow, pero he recibido ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , he realizado la degradación y sigo recibiendo este mensaje ...

He instalado Cuda 10 y la última versión de Tensor Flow, pero he recibido ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , he realizado la degradación y sigo recibiendo este mensaje ...

¿Podría decirnos la versión del sistema operativo y el comando exacto que emitió para "degradar"?

Probé Deepin 15.8 y Mint 19.1, voy a probar Windows 10 más tarde. El comando pip install --upgrade tensorflow-gpu==version , probé las versiones maestras : 1.9.0, 1.10.1, 1.11.0 y 1.12.0. La versión cuda y los controladores:

image

@Sphinxs , en mi opinión, tiene dos formas: a) recompilar la rueda de Python localmente para que apunte a la versión cuda instalada ob) instalar cuda-9.0 como hice para mi instalación 18.04 y todavía funciona después de meses.

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

el hombre tiene razón. TF PUEDE compilarse para funcionar con versiones CUDA más modernas ... ¿por qué no ofrecer eso a la mayoría de las personas con un paquete tensorflow-gpu-cuda110 o algo temporal hasta que la biblioteca pueda descubrir la versión cuda subyacente de forma dinámica?

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

¡¡¡¡Estoy harto de eso!!!!

¡¡¡¡Estoy harto de eso!!!!

Este comentario no agrega nada al problema. Además, nadie obliga a nadie a usar TF, pero si realmente lo necesita y no puede hacer que los paquetes pip funcionen, ¿por qué no construirlo usted mismo? Eso es lo que terminé haciendo en algún momento. Vi que también hay compilaciones apoyadas por la comunidad aquí
https://github.com/tensorflow/tensorflow simplemente desplácese hacia abajo.
¿Quizás construir para su GPU y contribuir?

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

¡¡¡¡Estoy harto de eso!!!!

Esta es una página de problemas. Indique sus problemas para que se puedan solucionar o, mejor aún, ayude a solucionarlos.

@raphaunix , ¿puedo preguntar de dónde viene este gráfico?

Obtuve Tensorflow 1.11.0 funcionando ejecutando los siguientes comandos:

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

He descubierto que la razón es ldconf, ldconfig es un comando de administración de biblioteca de vínculos dinámicos cuyo propósito es permitir que el sistema utilice la biblioteca de vínculos dinámicos.

El ldconf predeterminado solo busca / lib y / usr / lib, así como el archivo de biblioteca bajo el directorio listado en el archivo de configuración / etc / ld. entonces. conf.

por lo que todo esto es causado por la biblioteca dinámica de CUDA en la ruta de CUDA instalada, como: /path/cuda-9.0/lib64 o /path/cuda-9.0/lib. (por ejemplo, mi CUDA está instalado en /usr/local/cuda-9.0)

1.Si instala el manual de CUDA, luego de la instalación, debe agregar la ruta de cuda / lib64 al archivo /etc/ld.so.conf
sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
entonces
sudo ldconfig
por supuesto, puede agregar el manual de ruta, como:
vim /etc/ld.so.conf
luego agregue la ruta '/usr/local/cuda-9.0' al final.
entonces actualízalo
sudo ldconfig
después de la operación, vuelva a abrir el ipython o pycharm,
import tensorflow as tf
guau, lo disfrutarás!

si instala CUDA mediante un comando como 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' u otros, puede agregar la ruta de acceso cuda lib a /etc/ld.so.conf automáticamente. pero para estar seguro, verifique /etc/ld.so.conf y vea si la ruta se agrega.

@jabalazs En lugar de conda install cudatoolkit==9.0 intenté pip install cudatoolkit==9.0 pero esto no funcionó, ¿sabes por qué?

Descubrí que mi tiempo de ejecución en colab no estaba usando GPU, por eso recibí mi error

Una solución aún mejor: elimine tensorflow, instale pytorch
¿Por qué tensorflow puede frenar tan fácilmente?
¿Por qué no puedo simplemente instalarlo y ejecutarlo?
¿Por qué es tan fácil con pytorch e impredecible con tf? ¿Qué pasa con eso?

¡Buena solución @dodler ! pero creo que te faltan los comandos para hacer que este gran consejo sea fácil de seguir a través de xD.

pip uninstall tensorflow
pip install torch

¡Feliz codificación!

Enfrenté este mismo error al intentar usar Thundersvm para acelerar NuSVR con GPU en Google Colab.
La instalación de Cuda 9.0 me solucionó el problema.
Solo sigue:

!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

¿Fue útil esta página
0 / 5 - 0 calificaciones