Tensorflow: ImportError: libcublas.so.9.0: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório

Criado em 23 dez. 2017  ·  136Comentários  ·  Fonte: tensorflow/tensorflow

Eu instalei o tf-nightly build e recebo o seguinte erro ao importar o tensorflow.
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory .

Se eu verificar cuda 9, obtenho o seguinte:

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

Eu isso devido a uma incompatibilidade de nome. libcublas.so.9.0 =! libcublas.so.9.1 ? E se sim, como podemos superar isso?

Comentários muito úteis

Você resolveu isso? Este problema é causado por tensorflow-gpu-1.5 necessário cuda 9.0, então você deve instalar tensorflow-gpu-1.4. E lembre-se de desinstalar o tensorflow-gpu-1.5. Use este "pip install --upgrade tensorflow-gpu == 1.4"

Todos 136 comentários

Acho que isso se deve ao fato de que você tem CUDA 9.1 e não 9.0, estou enfrentando exatamente o mesmo problema.

@Timonzimm eu sei e acho que toda a questão é essa porra de nomenclatura libcublas.so.xxx que a nvidia coloca. Isso é inerentemente incompatível em sistemas Linux sempre que esse número muda, então, como ele não consegue encontrar as correspondências exatas, ele pensa que o arquivo não existe e gera o erro.

Eu acho que você deve usar o link de símbolo de '' cuda / '' para '' cuda / 9.1 ", ou sua versão cuda é muito nova para tensorflow master branch

@ burui11087 Esqueci completamente o

Parece que isso foi resolvido (e a causa raiz era uma incompatibilidade de versão de CUDA - 9.0 vs 9.1)?
Fechando porque entendi que foi resolvido, mas por favor me avise se eu estiver enganado.

Para sua informação, @ av8ramit (que está trabalhando no próximo lançamento 1.5)

Também ocorre exatamente o mesmo problema com o kirk86. Para mim, instalei o cuda toolkit 8.0 e o cudnn 5.1.
Aí eu fiz o que vcs falaram acima, todos eles não funcionam.

Para usar nightlies, você deve ter CUDA 9.0 e cudnn 7 instalado.
@yangfengKAUST com a versão atual do cuda e o cudnn instalado do TF está apenas reclamando que não consegue encontrar as versões que está esperando.

@Timonzimm Estou enfrentando o mesmo problema. Você já descobriu?

Tenho 8.0, 9.0, 9.1 instalado + versões cudnn que parecem específicas para cada um. O sym linking não funcionou nas bibliotecas 9.1. Suspeito que às vezes o link simbólico no LD_LIBRARY_PATH também não funciona quando eu troco as versões no link / usr / local / cuda. Acabei fazendo isso da maneira de baixa tecnologia para carregar as bibliotecas em meu programa java até que eu possa descobrir uma maneira mais limpa de lidar com os caminhos dentro do 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 Gostaria de saber que em seu comentário acima você quer dizer que devemos fazer o downgrade do cuda para 9.0 e o tensorflow 1.5 não funciona com o cuda 9.1?

Você fechou este problema, mas não está claro qual é a ação correta que devemos tomar.

Nota: Eu também tenho o cuda 9.1 instalado em vez do cuda 9.0.

Apenas para sua informação, eu tenho ambos instalados. Compilar do zero funcionará com qualquer um dos dois, mas os binários noturnos usam 9.0.

@AwasthiMaddy - Sim, os binários da versão do TensorFlow 1.5 são desenvolvidos para CUDA 9.

Você resolveu isso? Este problema é causado por tensorflow-gpu-1.5 necessário cuda 9.0, então você deve instalar tensorflow-gpu-1.4. E lembre-se de desinstalar o tensorflow-gpu-1.5. Use este "pip install --upgrade tensorflow-gpu == 1.4"

@aipeteryao - Obrigado.

Alguém precisa consertar a página https://www.tensorflow.org/install/install_linux se isso for verdade, eu apenas segui suas instruções exatamente e disse a você para instalar o CUDA 8.0 (especificamente, não o "CUDA mais recente").

Então, assim que terminar, você receberá este erro (ele está procurando cublas 9.0, que, pelo que posso ler aqui, também não teria funcionado, já que CUDA 9.1 é o padrão que você obtém da NVIDIA).

As instruções da página da Web devem funcionar com o padrão mais recente de tudo ou devem dizer explicitamente para instalar tensorflow-gpu-1.4 (por exemplo) e não tensorflow-gpu.

Apoiando o comentário de bwesons. Tenho CUDA 8.0 e Tensorflow 1.3. Segui as instruções de instalação atuais do TF 1.5 (GPU, ubuntu, virtualenv) e ele quebra conforme descrito acima. Revertendo para TF 1.3 até que isso seja resolvido.

@aipeteryao Isso consertou, obrigado! Acabei desinstalando a última versão e instalando 1.4, no meu virtualenv.

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

A página de instalação do Ubuntu deve ser atualizada: https://www.tensorflow.org/install/install_linux
Como o TensorFlow 1.5 espera Cuda 9.0 (NÃO 9.1), bem como cuDNN 7

Na verdade, devemos ver o documento oficial do tensorflow, ele fornece o ambiente do tensorflow (inclui python, gcc, cuda, cudnn e assim por diante).

@bwesen sim, você estava certo. Meu computador instalou CUDA 8.0, cudnn 6.0, tensorflow 1.4.

Acho que esse problema ainda deve estar aberto. O comentário de @bwesen está correto. Os documentos dizem para você instalar o Cuda 8.0 e usar pip install --upgrade tensorflow-gpu . No momento isso lhe dá tensorflow 1.5, que não funciona com o Cuda 8.0

pingando @asimshankar

Eu tenho o mesmo problema (com cuda 9.1 + tensorflow 1.5). Acho que para resolver isso, uma opção é fazer o downgrade do cuda para 9.0. A outra opção seria reduzir o cuda para 8,0 e o tensorflow para 1,4. Se você já instalou o cuda 8.0, você só precisa modificar a variável de ambiente LD_LIBRARY_PATH (e CUDA_HOME ) para apontar para o diretório cuda 8.0 (ou seja, /usr/local/cuda-8.0 ).

Estou tendo esse problema (Cuda 9.1.85, cuDNN 7.05)

Tentei com tensorflow 1.5, quebrou. Desinstalado, instalado 1.4 com pip3 install --upgrade tensorflow-gpu==1.4 , ainda quebrado.

@DylanDmitri 1.5 espera Cuda 9.0, não 9.1

Você já experimentou com os drivers Cuda 9.0?

@DylanDmitri @mkaze Você precisa do Cuda 9.0.

Além disso, para quem está tendo problemas para instalar os requisitos, sugiro verificar novamente a instalação do cuDNN. O arquivo .deb não funcionou para mim porque não copiou os arquivos para o lugar certo. Tive que usar o arquivo .tgz e copiar os arquivos manualmente de acordo com as instruções da nVidia para obter uma instalação funcional.

Por que não apenas instalar o 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 que não apenas instalar o cuda-9-0?

@abrahamrhoffman Isso é fácil para qualquer pessoa que tenha privilégios sudo, mas e quanto às pessoas em um sistema compartilhado, como um ambiente de cluster com privilégios de usuário simples. Nesses casos, mesmo que você peça ao administrador do sistema para instalar qualquer biblioteca, provavelmente a resposta será NÃO! Porque eles temem que isso possa interferir nas configurações e ambientes de outros usuários.

@abrahamrhoffman Você também se importaria de fornecer uma justificativa sobre o voto negativo?

Instalei o cuda-9.0 e ainda não funciona. Isso é realmente irritante.

Certifique-se de definir sua variável PATH apropriadamente, conforme descrito aqui: 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 é a versão atual. Eu quero que o TF use. Como?

Mesmo tf-nightly-gpu não está procurando por cuda 9.1. Meh

Tentei links simbólicos de todos os nomes de arquivo 9.0 para todos os nomes de arquivo 9.1 e não funcionou. No final, TF conhece a versão verdadeira. O repo nem tem mais o 9.0, então tenho medo de quebrar minhas coisas da nvidia se remover o 9.1 e instalar manualmente o 9.0.

Eu o conserto por agora:

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

Então: dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

Então: atualização do aptitude

Então: aptitude install cuda-9-0

Primeiro instalei o Tensorflow 1.5, ele quebrou e recebo o seguinte erro:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
em seguida, desinstalei, instalei 1.4 com pip install --upgrade tensorflow-gpu == 1.4, não funcionou e recebo o seguinte erro:
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

@xiezhongzhao Qual versão do Cuda você está usando? Para tensorflow 1.5 você deve ter instalado o Cuda 9.0 e para tensorflow 1.4 você deve usar cuda 8.0. Se a versão do tensorflow e a versão cuda são compatíveis, verifique as variáveis ​​de ambiente, ou seja, CUDA_HOME e LD_LIBRARY_PATH .

@mkaze eu usei Cuda9.1

@xiezhongzhao Instale o Cuda 9.0 e você ficará bem. O Tensorflow 1.5 não funciona com o Cuda 9.1.

@mkaze muito obrigado

Também estou pegando esse problema e lutando para resolvê-lo.

$ 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

Eu instalei seguindo estas instruções
https://www.tensorflow.org/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support

Acredito que instalei as versões corretas da nvidia. nomes de arquivos eram
cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
e cudnn-9.0-linux-x64-v7.tgz (versão 7.0.5)

Eu defini o caminho de acordo com as instruções nos documentos do tensorflow e também tentei as instruções que abrahamrhoffman deu acima.

Quando executo ldconfig -v, obtenho algumas libs 9.0, mas não vejo 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

Não instalei o 9.1, pelo menos não intencionalmente. Isso está em uma instância amazon ec2 com estoque ubuntu 16.04.
nvidia-smi também retorna um gpu, esta é uma instância g3.4xlarge

qualquer orientação é muito apreciada.

De acordo com o guia CUDNN em:

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

Você precisa copiar os arquivos descompactados (do diretório em que você executou $ tar -xzvf cudnn-9.0-linux-x64-v7.tgz ou semelhante) para os subdiretórios /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*

Obrigado pela resposta @ entropy43.

Eu deveria ter sido mais específico. Eu fiz aqueles dois cp e os comandos chmod depois de tar . Quando eu olho na pasta cuda para ver onde executei o comando tar como ls cuda/lib64 , vejo
libcudnn.so libcudnn.so.7 libcudnn.so.7.0.5 libcudnn_static.a

Eu tentei esta seção também no documento da nvidia
2.3.2. Installing from a Debian File

e os testes passam aqui em 2.4. Verifying

Qualquer conselho para obter essa lib é apreciado

Alguém poderia resumir onde isso está atualmente? Estou usando o TF1.3 + cuda 8 sem problemas. Eu gostaria de atualizar, mas parece que o processo de instalação para versões mais recentes está completamente quebrado. Adendo?

Semelhante ao que yazabazra está perguntando acima:
TF1.6 Ubuntu 16.04
nvcc -V
nvcc: driver do compilador NVIDIA (R) Cuda
Copyright (c) 2005-2017 NVIDIA Corporation
Construído em Fri_Nov__3_21: 07: 56_CDT_2017
Ferramentas de compilação Cuda, versão 9.1, V9.1.85
O que exigia um driver de vídeo 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 -the-nvidia-driver-quot-ubuntu-16-04 / post / 5243047 / # 5243047

whelp para adicionar a tudo, depois de uma grande quantidade de problemas, atualizei a Nvidia para a versão mais recente, veja acima, pois o documento do TF indicou que havia bugs em uma versão anterior.

Agora estou conseguindo:
ImportError: libcublas.so.9.0: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório
Falha ao carregar o tempo de execução do TensorFlow nativo.

O que parece ser uma incompatibilidade entre 9,0 (o TF deseja) e 9,1, que é a mais atual da Nvidia.
Pareceria melhor rodar com o 9.1, mas prefiro evitar compilar TF a partir do código-fonte e parece que pode não consertar de qualquer maneira.

Esta combinação pode funcionar com um pacote binário?
TF 1.6 Cuda 9.1 ??

Observação adicional e cuidado para aqueles que procuram aqui .. depois de atualizar minhas coisas da Nvidia, minhas versões anteriores do TF em ambientes conda separados não funcionam mais como o TF antigo deseja: ImportError: libcublas.so.8.0: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório
então 9.1 não vai funcionar .. que tal especificar maior que ?? vs versões específicas? apenas uma sugestão .. Nesse ínterim, estou morto na água ..

E é por isso que a disponibilidade de um binário com suporte para 9.1 seria bom: (das notas de versão do TF1.6)

Usando XLA: GPU com CUDA 9 e CUDA 9.1 resulta em resultados de lixo e / ou
Falhas CUDA_ILLEGAL_ADDRESS.

O Google descobriu em meados de dezembro de 2017 que o compilador PTX-to-SASS em CUDA 9
e CUDA 9.1 às vezes não calcula corretamente o carry quando
decompor cálculos de endereço de 64 bits com grandes deslocamentos (por exemplo, load [x + large_constant]) em aritmética de 32 bits no SASS.

Como resultado, essas versões do ptxas compilam incorretamente a maioria dos programas XLA que usam
mais de 4 GB de memória temporária. Isso resulta em resultados de lixo e / ou
Falhas CUDA_ERROR_ILLEGAL_ADDRESS.

Uma correção em CUDA 9.1.121 é esperada no final de fevereiro de 2018. Não esperamos um
correção para CUDA 9.0.x. Até que a correção esteja disponível, a única solução alternativa é
downgrade para CUDA 8.0.x
ou desative o XLA: GPU.

Talvez um dos noturnos faça isso?

Outra solução? pode-se instalar várias revisões do Cuda, visto que o TF parece procurar Rev's específicas? Em caso afirmativo, algum conselho sobre como?

Então, idealmente, eu seria capaz de executar o TF 1.4 (que atualmente requer Cuda 8.0) em um ambiente conda e TF 1.6 (que atualmente requer Cuda 9.0) em outro?

Então, acabei de adicionar sudo apt-get -y install cuda-toolkit-9.0 e estou pronto e funcionando com o TF1.6

@dartdog depois de instalar o cuda-toolkit-9.0, você enfrentou o 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}}

Isso definitivamente deve ser incluído na documentação do tensorflow, como disse @bwesen. Ele também deve ser incluído na lista de erros. É possível fazermos isso de qualquer maneira? Acho que vou abrir um novo problema, solicitando adicionar suporte para cuda 9.1 ou mencionar que você precisa do cuda 9.0 especificamente nos documentos e também incluir isso na lista de erros

Ok pessoal. Agora abri um novo problema em https://github.com/tensorflow/tensorflow/issues/17629.

Eu também estava lidando com esse problema. O que funcionou para mim com tensorflow-gpu 1.6:

  • Baixei o kit de ferramentas do arquivo como 9.0, mas foi instalado como 9.1 (não sei por quê ...)
  • Ainda não encontrado libcublas.so.9.0
  • Execute: sudo apt-get install cuda-libraries-9-0 conforme sugerido no final das instruções de instalação.
  • O problema parece ter sido resolvido.

Se você quiser que o tensorflow funcione com sua versão CUDA, você precisa primeiro desinstalá-lo e, em seguida, compilá-lo da fonte e especificar a versão CUDA durante a execução ./configure
Informações detalhadas podem ser encontradas aqui: https://www.tensorflow.org/install/install_sources

Estou tentando este link (que cria tensorflow manualmente)

Pode demorar um pouco mais, mas você pode definir as versões secundárias desta forma.

@ mldm4 na verdade, o comando sudo apt-get install cuda provavelmente instalou o 9.1 para você porque você também o tinha em seu sistema. Eu tive o mesmo problema e fiz sudo apt-get install cuda-9-0 para instalar uma versão específica (também baixei do arquivo).
Acho que o comando que você fez ( sudo apt-get install cuda-libraries-9-0 ) também baixa o cuda 9.0.
Esse problema não foi resolvido, como mencionei no problema 17629, sei que o problema é que o TensorFlow espera a versão 9.0, enquanto eu tinha a 9.1. O problema é mencionar isso mais claramente na documentação e incluí-lo nos problemas comuns de instalação na parte inferior da documentação ou atualizar o tensorflow para aceitar o Cuda 9.1.

então nenhuma solução ainda?

@thread :

* Por favor, leia as postagens com atenção! *

É seu trabalho ler o tópico e descobrir a solução; não simplesmente rolar até o fim.

@abrahamrhoffman isso é rude.

Acabei de mudar meu batchrc de cuda-9.1 para apenas cuda. Então meu tensorflow é capaz de encontrar o libcublas.so.9.0

@DanlanChen Provavelmente porque você também tem o 9.1 instalado. Para instalar o 9.0, nas etapas de download, faça sudo apt-get install cuda-9-0 vez de sudo apt-get install cuda .

@ cubetastic33 Fiz o downgrade da minha versão do tensorflow e uso o cuda8.0, obrigado mesmo assim.

@DanlanChen mas então, eu acho que é preferível usar a versão mais recente. Então, se você quiser fazer um upgrade, agora você sabe o que fazer! :sorriso:

Estou enfrentando o mesmo problema, mas estou tentando executar tensorflow usando nvidia-docker. Eu tenho o cuda-9-0 instalado no host, mas quando tento executar meu contêiner do docker, recebo

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

@ magick93 e tudo o que aparece aqui!

OUÇO! Tudo o que você precisa é fazer o downgrade do seu cuda 9.1 -> cuda 9.0. É isso! Basta fazê-lo (se você baixou o cuda 9.1 antes, pode executar o seguinte comando em seu terminal):

sudo apt-get install cuda-9-0 e remova cuda 9.1 por rm -rf.

A propósito, não se esqueça de alterar $ PATH em seu ~/.bashrc (9.1 -> 9.0).

Olá @ Oktai15

OUÇO! Tudo o que você precisa é fazer o downgrade do seu cuda 9.1 -> cuda 9.0. É isso! Apenas faça

Sim, já fiz isso - muitas vezes.

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

Mesmo assim, não consigo nem mesmo executar esse script simples de tensorflow, pois o resultado é 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()

Eu tive o mesmo problema que todos estão tendo aqui, a instalação do 9.0 ajudou, mas depois tive outros problemas.
Então eu segui isso e finalmente funcionou para mim.

@ Oktai15 não rm -rf exclui seu sistema? Seja mais claro aqui, porque as pessoas podem tentar sem entrar no diretório necessário e acabar esvaziando a pasta pessoal.

@ magick93 seu problema parece ser outra coisa, não a versão CUDA.

Eu tive o mesmo problema, acho que resolvi com algumas mudanças, essa combinação funciona para mim

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

Se você instalar o novo cuda enquanto ainda tem a versão anterior, certifique-se de especificar o caminho como este

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, sua versão do Ubuntu realmente não importa. A questão é que o TensorFlow 1.6 espera que CUDA seja a versão 9.0 e cuDNN seja a versão 7.0.4 (sim, a 0.4 _simporta_)

Traceback (última chamada mais recente):
Arquivo "utils.py", linha 15, em
importar tensorflow como tf
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/__init__.py", linha 24, em
from tensorflow.python import *
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", linha 49, em
from tensorflow.python import pywrap_tensorflow
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", linha 74, em
aumentar ImportError (msg)
ImportError: Traceback (última chamada mais recente):
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", linha 58, em
from tensorflow.python.pywrap_tensorflow_internal import *
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", linha 28, em
_pywrap_tensorflow_internal = swig_import_helper ()
Arquivo "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", linha 24, em swig_import_helper
_mod = imp.load_module ('_ pywrap_tensorflow_internal', fp, nome do caminho, descrição)
ImportError: libcublas.so.9.0: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório

Falha ao carregar o tempo de execução do TensorFlow nativo.

Veja https://www.tensorflow.org/install/install_sources#common_installation_problems
sudo apt-get install cuda-7-0
vim ~ / .bashrc
exportar PATH = / usr / local / cuda-7.0 / bin $ {PATH: +: $ {PATH}}
exportar LD_LIBRARY_PATH = / usr / local / cuda7.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PATH}}
exportar PATH = / usr / local / cuda-9.0 / bin $ {PATH: +: $ {PATH}}
export LD_LIBRARY_PATH = / usr / local / cuda9.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PA
por algumas razões e soluções comuns. Inclui todo o rastreamento de pilha
acima desta mensagem de erro ao pedir ajuda.

Como @pascalwhoop mencionou, segui as instruções aqui http://www.python36.com/install-tensorflow141-gpu/ para construir o Tensorflow a partir da fonte.

Sempre que dizia cuda 9.0 mudei para 9.1, e cudnn 7.0 coloquei 7.1.2.

Funcionou bem, até agora!

@SAGGSOC por que você está instalando o cuda 7.0? Você precisa de CUDA 9.0 e CuDNN 7.0.4

Todos que estão tendo problemas: quem está disposto a transformar isso em uma imagem docker sólida compartilhada com a comunidade. Em vez disso, faça um pull de imagem de 6 gb uma vez que funcione do que fazer DLing 5 versões de CuDNN antes que as coisas funcionem.

https://github.com/pascalwhoop/tf_openailab_gpu_docker

Comecei há um tempo, mas parei por causa de uma mudança no foco do projeto. Mas acho que vale a pena perseguir. Mantém todo o problema de encontrar a combinação certa de 17 peças móveis longe da maioria das pessoas.

Só para esclarecer algumas coisas para quem possa tropeçar neste post. Tenho no meu sistema instalado o cuda-8.0, cuda-9.0, cuda-9.1. Você não precisa remover nada para fazê-lo funcionar com tensorflow. Em vez disso, se você está perdendo o cuda-9.0 de seu sistema, como outros já indicaram, você precisará instalá-lo, que é um pré-requisito para que o tensorflow funcione corretamente.

Se você tiver cuda-9.0 instalado em seu sistema e o tensorflow estiver reclamando de libcublas.so.9.0 novamente, como outros disseram, exponha isso durante o tempo de execução por meio de sua variável de ambiente LD_LIBRARY_PATH em seu .bashrc faça isso aponte para /usr/local/cuda-9.0/lib64 . Isso deve funcionar mesmo para tensorflow 1.7.

O que tentei e não consegui realizar foi construir a partir da fonte. Por algum motivo, o Bazel sempre sai com um erro. Se você tentar compilar com cuda-9.0 / cuda-9.1 e cudnn7, ele reclamará do gcc7. Usar a compilação gcc5 parece estar funcionando bem, mas no final sempre recebo um erro e a compilação não é bem-sucedida.

Minha pergunta é se alguém conseguiu compilar a partir do código-fonte com cuda-9.1 / cuda-9.0 sem problemas?

Isso funcionou para mim:

Baixe o CUDA Toolkit 9.0 da seção de versões anteriores da NVidia.
Então:

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 na última linha acima.

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

Minha configuração
Tensorflow 1.7
cuDNN 7.1.2
Ubuntu 16.04

etemiz,
Eu tenho a mesma configuração e funciona para mim também.

Obrigado pelo seu post :)

Eu tive a mesma situação. Eu tinha o cuda 9.1 e o tensorflow não encontrou bibliotecas para o cuda 9.0.

Instalei o cuda 9.0 com o comando: sudo apt-get install cuda-libraries-9-0

Isso resolveu meu problema.

Com cuda 8 e 9.0 instalado, configurar LD_LIBRARY_PATH em .bashrc e .profile não funciona. Então, eu configurei
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 no campo da variável de ambiente do pycharm e funciona.

o acima funcionou para instalação no Ubuntu Server 17. ou seja,

  • instalando cuda-9.0 (NÃO 9.1)
  • cuDNN v7.1.2 (21 de março de 2018) para CUDA 9.0
  • tudo o resto de acordo com as instruções oficiais de instalação tf

muito mais fácil do que compilar.

tenha cuidado com os usuários do conda. Tive o mesmo problema e fiquei coçando a cabeça por dois dias, até que finalmente descobri que a cópia local de libcudnn.so era usada por conda, em:
/miniconda3/lib/libcudnn.so que apontou para libcudnn.so.7 que apontou para libcudnn.so.7.0.5
Não me lembro quem e como o colocou lá, mas praticamente sobrecarregou o libcudnn.so.7.1.2 padrão do sistema !!!

uma vez removido, tudo funciona perfeitamente:
tensorflow 1.7 ou 1.8-nightly, cuda-9.1, cudnn-7.1.2 no ubuntu 16.04

De alguma forma, resolvi isso instalando:
cuda 9.1 (do gerenciador de pacotes),
cudnn 7.1 para 9.1
e da anaconda:
usando este comando padrão 'conda install -c anaconda tensorflow-gpu'
cudatoolkit 9.0,
tensorflow 1.7,
tensorflow-gpu 1.7

Usei Antergos linux, GTX 1060 no meu PC. Funcionou bem no meu notebook (Xubuntu 18.04, GT 840m). No meu notebook eu usei:
cuda 9.1 (da nvidia ppa), cudnn 7.1 para 9.1 (da nvidia web) e o resto foi o mesmo

Obrigado @Suananda! Funciona como mágica.

Se você tiver uma versão antiga do CUDA, o link da biblioteca pode apontar para a biblioteca antiga, mesmo que você instale o CUDA mais recente, especialmente se você instalá-lo manualmente. Tente excluir sua instalação antiga e, em seguida, sudo ldconfig para atualizar os links dinâmicos.

Nenhuma solução ainda !?

Para qualquer um que possa tropeçar nisso, eu lancei uma roda da comunidade do último tensorflow 1.8.0-rc1 construído com cuda 9.1. Você pode encontrar aqui !

Descobri que o motivo é ldconf, ldconfig é um comando de gerenciamento de biblioteca de vínculo dinâmico cujo objetivo é permitir que a biblioteca de vínculo dinâmico seja usada pelo sistema.

O ldconf padrão pesquisa apenas / lib e / usr / lib, bem como o arquivo de biblioteca no diretório listado no arquivo de configuração / etc / ld. assim. conf.

então, tudo isso é causado pela biblioteca dinâmica de CUDA no caminho CUDA instalado, como: /path/cuda-9.0/lib64 ou /path/cuda-9.0/lib. (por exemplo, meu CUDA está instalado em /usr/local/cuda-9.0)

  1. se você instalar o manual CUDA, após a instalação, você deve adicionar o caminho de cuda / lib64 ao arquivo /etc/ld.so.conf
    sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
    então
    sudo ldconfig

    claro, você pode adicionar o manual do caminho, como:
    vim /etc/ld.so.conf
    em seguida, adicione o caminho '/usr/local/cuda-9.0/lib64' no final.
    sudo ldconfig
    após a operação, reabra o ipython ou pycharm,
    importar tensorflow como tf
    uau, você vai se divertir!

  2. se você instalar o CUDA por comando como 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' ou outros, pode adicionar o caminho cuda lib ao /etc/ld.so.conf automaticamente. mas para estar no lado seguro, verifique o /etc/ld.so.conf e veja se o caminho adiciona a ele.

@NYcleaner
No Ubuntu, há um arquivo /etc/ld.so.conf.d/cuda-9-1.conf contendo:
/usr/local/cuda-9.1/targets/x86_64-linux/lib

Isso é suficiente ou preciso adicionar o diretório /usr/local/cuda-9.1/lib64/ a ele?

@sebma
você deve adicionar o caminho /usr/local/cuda-9.1/lib64/ a ele, os arquivos * .so estão na 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 Bem, a outra opção é que a comunidade forneça rodas pré-construídas. Se você leu 2-3 tópicos acima, também verá que foi mencionado novamente.

@Suananda Obrigado, funciona para mim em um ambiente tensorflow conda.
Sugira ao pessoal oficial para modificar o guia de instalação " https://www.tensorflow.org/install/install_linux#InstallingAnaconda ", passo 4 da instalação do Anaconda, de "pip install --ignore-installed --upgrade tfBinaryURL" para "conda install -c anaconda tensorflow-gpu "

O softlink parece não 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

Ainda tenho:

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:

quando executo meu código diretamente no ambiente linux, está tudo OK. Mas quando executo o pycharm local por meio do interpretador remoto, encontro o problema: ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory. "Failed to load the native TensorFlow runtime."

exportar PATH = $ {PATH}: / 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

se usar pycharm - adicione ao interpretador

que tal f ** Eu só quero usar tensorflow1.8 e cuda9.1?

@dongzhuoyao Então qual é o problema? olhe meu comentário 6 tópicos acima e você encontrará sua solução lá!

Acho que o problema apareceu novamente com cuda 9.2 e tensorflow-gpu 1.8 . Em um virtualenv, eu obtenho:

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

Minha pasta /usr/local/cuda-9.2/lib64 tem as seguintes 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

Versões:

Ubuntu 16.04
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Precisaremos de uma atualização para tensorflow-gpu para usar cuda 9.2.

Além disso, se eu fosse fazer o downgrade para o cuda 9.0, teria que primeiro remover o cuda 9.2 ou apenas instalar o 9.0 imediatamente? Eu teria instalações conflitantes?

@mebble Aqui está: link . Isso é roda tf 1.8 para cuda 9.2.

se eu fosse fazer o downgrade para o cuda 9.0, teria que remover primeiro o cuda 9.2

Não faça downgrade. Instale qualquer outra versão que você quiser, eles serão instalados em /usr/local/cuda-x.x

Obrigado! Esqueci de mencionar que estou usando python 3.5.2 e pip 10.0.1 . Acho que a roda é para o python 3.6, então a instalação não funciona. Você também tem um para 3,5?

@ kirk86 após instalar o whl que você forneceu, lança um erro semelhante para libmpi.so.40
Estou usando CentOS e GPU K80, cuda 9.2 e cudnn v7.1

Sugestão

Pelo que eu sei, você pode ter sub-pacotes xxx, yyy, zzz etc. e instalá-los como segue

pip install mainpackage[xxx]

Desta forma, diferentes back-ends coexistentes podem ser fornecidos. O Tensorflow pode ser criado com diferentes opções, portanto, pelo menos algumas versões do cuda-toolkit podem ser fornecidas dessa maneira.

O objetivo do pacote é economizar tempo de construção, mas a construção de um pacote para um conjunto muito específico de bibliotecas que instala bem, mas não funciona, é contraproducente. Seria melhor não ter esse pacote em primeiro lugar.

@mebble acabou de criar um ambiente virtual conda para python 3.6. Certifique-se de que também instalou no seu sistema o openmpi.

@ pavan-08 Instale openmpi em seu sistema também nccl 2.x o que for mais recente da nvidia. Compilei tf com a maioria dos pacotes e bibliotecas, então pode ser usado hdfs, kafta, aws, etc. É por isso que está perguntando libmpi.so porque é da biblioteca openmpi.

Com cuda 9.2 e tensorflow-gpu 1.8 não consigo construir tensorflow

saída declarada 'external / local_config_cuda / cuda / cuda / lib / libcudnn.so.7' é um link simbólico pendente

O link simbólico existe

Versões:

Ubuntu 17.10
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Isso funciona para mim (tensorflow-gpu == 1.8.0 e a versão cuda é 9.0, instale no anaconda)

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

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

@Jackiexiao Sim, era isso que eu ia dizer. Estou usando uma estação de trabalho, então, para mim, tudo que eu precisava fazer era usar CUDA 9.0 em vez de 9.2 (já que várias versões do CUDA foram instaladas)

Isso funcionou para mim:
Como o Tensorflow> 1.4 requer CUDA 9, desinstalei todas as versões CUDA:

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

Instale exatamente CUDA 9.0 e CuDNN 7.0.xe reinicie.

Consulte as combinações de CUDA, CuDNN e Tensorflow .

Este erro ocorre principalmente devido a combinações incorretas de versões de driver Nvidia, CUDA, CuDNN e Tensorflow-gpu
image

Obrigado!

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

签名 由 网易 邮箱 大师 定制

Em 18/08/2018 08:00, Dhruv Srivastava escreveu:

Consulte as combinações de CUDA e CuDNN.

Este erro ocorre principalmente devido a combinações incorretas de versões de driver Nvidia, CUDA, CuDNN e Tensorflow-gpu

-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub ou ignore a conversa.

@dhruvhacks Good. Eu acho que as pessoas deveriam instalar a versão certa do tensorflow-gpu com a versão certa cuda.

Estou no Ubuntu 18.08 e tinha o Cuda 9.0 instalado em:

/usr/local/cuda-9.0

Decidi procurar libcublas.so.9.0 :

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

Isso me disse que o arquivo estava em /usr/local/cuda-9.0/lib64/stubs/libcublas.so.9.0 , o que me ajudou a perceber que eu tinha dois problemas: Em ~/.bash_profile eu havia definido: export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/ , mas meu arquivo estava em stubs diretório

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

Finalmente, libcublas.so.9.0 pertencia ao root, então mudei as permissões e o proprietário do arquivo:

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

E tudo estava bem!

Com cuda 8 e 9.0 instalado, configurar LD_LIBRARY_PATH em .bashrc e .profile não funciona. Então, eu configurei
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 no campo da variável de ambiente do pycharm e funciona.

Exatamente, muito obrigado por resolver o problema, passei dias tentando resolver isso. realmente aprecio companheiro

Também encontro esse problema quando uso o PyCharm para depurar meu código em um servidor remoto (aws deep learning ami). A versão cuda é 9.0 e o cudnn é 7.1.4 e tensorflow é 1.10.0 (para gpu). Posso importar tensorflow normalmente pelo terminal conectado ao meu servidor, mas não consigo importar tensorflow no console Python do PyCharm. O problema ocorre neste momento. Portanto, não posso depurar com PyCharm ...
Minha solução é : insira esta linha no terminal após conectar ao seu servidor

sudo ldconfig /usr/local/cuda/lib64

E eu fiz referência a thisLink

@NYcleaner Muito obrigado! Isso ajuda! e descobri que apenas usar link simbólico também funciona.
sudo echo "/ usr / local / cuda / lib64 /" >> /etc/ld.so.conf
sudo ldconfig

Isso ainda é um problema com Cuda 9.1 e Tensorflow 1.11

cuda 10.0 tensorflow 1.11

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

Por que não apenas instalar o 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

No Ubuntu 18.04 cuda 9-0 não está (oficialmente) disponível. Mas funciona.

Olá a todos,
Eu uso o PyTorch tanto quanto possível, mas para um projeto específico em que preciso exportar um modelo (Keras) para tensorflowjs, sou forçado a usar tf. A única solução que funcionou bem para mim foi construir a partir do código-fonte, depois de instalar o CUDA a partir do multiverso Ubuntu, conforme descrito aqui:

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

Boa chance!

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

Solução estúpida

Instalei o Cuda 10 e a versão mais recente do Tensor Flow, mas recebi ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , fiz o downgrade e ainda estou recebendo esta mensagem ...

Instalei o Cuda 10 e a versão mais recente do Tensor Flow, mas recebi ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , fiz o downgrade e ainda estou recebendo esta mensagem ...

Você poderia nos dizer a versão do sistema operacional e o comando exato que você emitiu para "fazer downgrade"?

Tentei Deepin 15.8 e Mint 19.1, vou testar o Windows 10 mais tarde. O comando pip install --upgrade tensorflow-gpu==version , tentei as versões master : 1.9.0, 1.10.1, 1.11.0 e 1.12.0. A versão cuda e os drivers:

image

@Sphinxs , na minha opinião, você tem duas maneiras: a) recompilar o python wheel localmente para apontar para a versão cuda instalada ou b) instalar o cuda-9.0 como fiz na minha instalação 18.04 e ainda está funcionando depois de meses.

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

o homem tem razão. TF PODE ser compilado para funcionar com versões CUDA mais modernas ... por que não oferecer isso para a maioria das pessoas com um pacote tensorflow-gpu-cuda110 ou algo temporário até que a biblioteca possa descobrir a versão cuda subjacente dinamicamente?

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

Estou cansado disso!!!!

Estou cansado disso!!!!

Este comentário não acrescenta nada ao problema. Além disso, ninguém força ninguém a usar o TF, mas se você realmente precisa e não consegue fazer os pacotes pip funcionarem, por que não construí-lo você mesmo? Foi o que acabei fazendo em algum momento. Eu vi que também há construções com suporte da comunidade aqui
https://github.com/tensorflow/tensorflow basta rolar para baixo.
Talvez construir para sua GPU e contribuir?

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

Estou cansado disso!!!!

Esta é uma página de problema. Por favor, indique seus problemas para que possam ser corrigidos ou, melhor ainda, ajude a corrigi-los.

@raphaunix, posso perguntar de onde vem esse gráfico?

Eu coloquei o Tensorflow 1.11.0 funcionando executando os seguintes comandos:

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

Descobri que o motivo é ldconf, ldconfig é um comando de gerenciamento de biblioteca de vínculo dinâmico cujo objetivo é permitir que a biblioteca de vínculo dinâmico seja usada pelo sistema.

O ldconf padrão pesquisa apenas / lib e / usr / lib, bem como o arquivo de biblioteca no diretório listado no arquivo de configuração / etc / ld. assim. conf.

então, tudo isso é causado pela biblioteca dinâmica de CUDA no caminho CUDA instalado, como: /path/cuda-9.0/lib64 ou /path/cuda-9.0/lib. (por exemplo, meu CUDA está instalado em /usr/local/cuda-9.0)

1.se você instalar o manual CUDA, então após a instalação, você deve adicionar o caminho de cuda / lib64 ao arquivo /etc/ld.so.conf
sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
então
sudo ldconfig
claro, você pode adicionar o manual do caminho, como:
vim /etc/ld.so.conf
em seguida, adicione o caminho '/usr/local/cuda-9.0' no final.
então atualize-o
sudo ldconfig
após a operação, reabra o ipython ou pycharm,
import tensorflow as tf
uau, você vai se divertir!

se você instalar o CUDA por comando como 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' ou outros, pode adicionar o caminho cuda lib ao /etc/ld.so.conf automaticamente. mas para estar no lado seguro, verifique o /etc/ld.so.conf e veja se o caminho adiciona a ele.

@jabalazs Em vez de conda install cudatoolkit==9.0 tentei pip install cudatoolkit==9.0 mas não funcionou, sabe por quê?

Descobri que meu tempo de execução no colab não estava usando GPU, por isso recebi meu erro

Solução ainda melhor - remova o tensorflow, instale o pytorch
Por que o tensorflow pode frear tão facilmente?
Por que não posso simplesmente instalar e executar?
Por que é tão fácil com o pytorch e imprevisível com tf? O que há de errado com isso?

Boa solução @dodler ! mas acho que estão faltando os comandos para tornar este ótimo conselho fácil de seguir por meio do xD.

pip uninstall tensorflow
pip install torch

Boa codificação!

Eu enfrentei este mesmo erro ao tentar usar Thundersvm para acelerar NuSVR com GPUs no Google Colab.
Instalar o Cuda 9.0 resolveu o problema para mim.
Apenas siga:

!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

Esta página foi útil?
0 / 5 - 0 avaliações