Tensorflow: ImportError: libcublas.so.9.0: невозможно открыть файл общих объектов: нет такого файла или каталога

Созданный на 23 дек. 2017  ·  136Комментарии  ·  Источник: tensorflow/tensorflow

Я установил tf-nightly build и получаю следующую ошибку при импорте tenorflow.
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory .

Если я проверю cuda 9, я получаю следующее:

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

И это из-за несоответствия имени. libcublas.so.9.0 =! libcublas.so.9.1 ? И если да, то как мы можем это преодолеть?

Самый полезный комментарий

Вы решили это? Эта проблема вызвана тем, что для tenorflow-gpu-1.5 требуется cuda 9.0, поэтому вам следует установить tensorflow-gpu-1.4. И не забудьте удалить tenorflow-gpu-1.5. Используйте этот "pip install --upgrade tensorflow-gpu == 1.4"

Все 136 Комментарий

Я думаю, это связано с тем, что у вас CUDA 9.1, а не 9.0, я столкнулся с той же проблемой.

@Timonzimm Я знаю и думаю, что вся проблема в том, что nvidia ставит имя libcublas.so.xxx. Это по своей сути несоответствие в системах Linux всякий раз, когда это число изменяется, поэтому, поскольку он не может найти точных совпадений, он думает, что файл не существует, и выдает ошибку.

Я думаю, вам следует использовать символьную ссылку от '' cuda / '' до '' cuda / 9.1 ", иначе ваша версия cuda слишком нова для ветки мастера tenorflow

@ burui11087 Я совсем забыл о символических ссылках. Спасибо за напоминание.

Кажется, что это решено (и основной причиной было несоответствие версий CUDA - 9.0 против 9.1)?
Закрытие этого вопроса, так как я понимаю, что он должен быть решен, но, пожалуйста, дайте мне знать, если я ошибаюсь.

К вашему сведению @gunan @ av8ramit (кто работает над предстоящим выпуском 1.5)

У меня также возникает точно такая же проблема с kirk86. Для меня я установил cuda toolkit 8.0 и cudnn 5.1.
Затем я сделал то, что вы, ребята, сказали выше, все они не работают.

Для использования nightlies у вас должны быть установлены CUDA 9.0 и cudnn 7.
@yangfengKAUST с установленной текущей версией cuda и cudnn TF просто жалуется, что не может найти ожидаемые версии.

@Timonzimm Я столкнулся с той же проблемой. Вы уже догадались?

У меня установлены версии 8.0, 9.0, 9.1 + cudnn, которые кажутся специфичными для каждой. Символьная ссылка не работала из библиотек 9.1. Я подозреваю, что иногда символическая ссылка в LD_LIBRARY_PATH не работает, когда я переключаю версии по ссылке / usr / local / cuda. В итоге я просто использовал низкотехнологичный способ загрузки библиотек в мою Java-программу, пока я не смог найти более чистый способ обработки путей внутри 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 Хотели бы знать, что в вашем вышеприведенном комментарии вы имеете в виду, что мы должны понизить cuda до 9.0, а tensorflow 1.5 не работает с cuda 9.1?

Вы закрыли этот вопрос, но неясно, какое правильное действие мы должны предпринять!

Примечание: у меня также установлена ​​cuda 9.1 вместо cuda 9.0.

К вашему сведению, я установил оба. Сборка с нуля будет работать и в том и в другом случае, но ночные исполняемые файлы используют версию 9.0.

@AwasthiMaddy - Да, двоичные файлы выпуска

Вы решили это? Эта проблема вызвана тем, что для tenorflow-gpu-1.5 требуется cuda 9.0, поэтому вам следует установить tensorflow-gpu-1.4. И не забудьте удалить tenorflow-gpu-1.5. Используйте этот "pip install --upgrade tensorflow-gpu == 1.4"

@aipeteryao - Спасибо.

Кому-то нужно исправить страницу https://www.tensorflow.org/install/install_linux, если это правда, я просто точно выполнил его инструкции и сказал вам установить CUDA 8.0 (в частности, не «последнюю версию CUDA»).

Затем, как только вы закончите, вы получите эту ошибку (он ищет Cublas 9.0, который, из того, что я могу прочитать здесь, тоже не сработал бы, поскольку CUDA 9.1 является значением по умолчанию, которое вы получаете от NVIDIA).

Либо инструкции веб-страницы должны работать со всеми последними версиями по умолчанию, либо они должны явно указывать вам, что нужно установить tensorflow-gpu-1.4 (например), а не tenorflow-gpu ..

Второй комментарий Бвесона. У меня CUDA 8.0 и Tensorflow 1.3. Я выполнил текущие инструкции по установке TF 1.5 (GPU, ubuntu, virtualenv), и он ломается, как описано выше. Возврат к TF 1.3, пока проблема не будет решена.

@aipeteryao Это исправлено, спасибо! В итоге я удалил последнюю версию и установил 1.4 в свой файл virtualenv.

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

Страница установки Ubuntu должна быть обновлена: https://www.tensorflow.org/install/install_linux
Поскольку TensorFlow 1.5 ожидает Cuda 9.0 (НЕ 9.1), а также cuDNN 7

Фактически, мы должны просмотреть официальный документ tensorflow, он дает среду tenorflow (включая python, gcc, cuda, cudnn и т. Д.).

@bwesen да, вы были правы. На моем компьютере установлены CUDA 8.0, cudnn 6.0, tensorflow 1.4.

Думаю, этот вопрос все еще должен быть открытым. @bwesen «s комментарий является правильным. В документации сказано установить Cuda 8.0 и использовать pip install --upgrade tensorflow-gpu . Прямо сейчас это дает вам тензорный поток 1.5, который не работает с Cuda 8.0

пингует @asimshankar

У меня такая же проблема (с cuda 9.1 + tensorflow 1.5). Я думаю, чтобы решить эту проблему, один из вариантов - понизить версию cuda до 9.0. Другой вариант - понизить как cuda до 8.0, так и tenorflow до 1.4. Если вы уже установили cuda 8.0, вам нужно только изменить переменную среды LD_LIBRARY_PATHCUDA_HOME ), чтобы она указывала на каталог cuda 8.0 (т.е. /usr/local/cuda-8.0 ).

Я получаю эту проблему (Cuda 9.1.85, cuDNN 7.05)

Пробовал с tenorflow 1.5, сломалось. Деинсталлировал, установил 1.4 с pip3 install --upgrade tensorflow-gpu==1.4 , все равно сломался.

@DylanDmitri 1.5 ожидает Cuda 9.0, а не 9.1

Вы пробовали с драйверами Cuda 9.0?

@DylanDmitri @mkaze Вам нужна Cuda 9.0.

Кроме того, тем, у кого возникают проблемы с установкой требований, я предлагаю дважды проверить установку cuDNN. Файл .deb у меня не работал, потому что он не копировал файлы в нужное место. Мне пришлось использовать файл .tgz и вручную копировать файлы в соответствии с указаниями nVidia, чтобы получить рабочую установку.

Почему бы просто не установить 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

Почему бы просто не установить cuda-9-0?

@abrahamrhoffman Это легко для любого, у кого есть привилегии sudo, но как насчет людей в общей системе, такой как кластерная среда, с простыми привилегиями пользователя. В таких случаях, даже если вы попросите системного администратора установить какие-либо библиотеки, скорее всего, ответ будет НЕТ! Поскольку они боятся, что это может помешать настройкам и средам других пользователей.

@abrahamrhoffman Не

Я установил cuda-9.0, но он все равно не работает. Это действительно раздражает.

Убедитесь, что вы правильно установили переменную PATH, например, как описано здесь: 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 - текущая версия. Я хочу, чтобы TF его использовал. Как?

Даже tf-nightly-gpu не ищет cuda 9.1. Мех

Я пробовал символические ссылки со всех имен файлов 9.0 на все имена файлов 9.1, и это не сработало. В конце концов, TF знает истинную версию. В репо больше нет даже 9.0, поэтому я боюсь, что сломаю свой материал nvidia, если удалю 9.1, а затем вручную установлю 9.0.

Я исправляю его сейчас:

Загрузите deb (сеть) с: https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

Тогда: dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

Затем: обновление aptitude

Затем: aptitude install cuda-9-0

Сначала я установил tensorflow 1.5, он сломался, и я получаю следующую ошибку:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
затем я удалил, установил 1.4 с помощью pip install --upgrade tensorflow-gpu == 1.4, это не сработало, и я получаю следующую ошибку:
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory

@xiezhongzhao Какую версию Cuda вы используете? Для tenorflow 1.5 вы должны установить Cuda 9.0, а для tenorflow 1.4 вы должны использовать cuda 8.0. Если версия tenorflow и версия cuda совместимы, проверьте переменные среды, то есть CUDA_HOME и LD_LIBRARY_PATH .

@mkaze Я использовал Cuda9.1

@xiezhongzhao Установите Cuda 9.0, и все будет в порядке. Tensorflow 1.5 не работает с Cuda 9.1.

@mkaze Большое спасибо

Я также получаю эту проблему и изо всех сил пытаюсь ее решить.

$ 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

Я установил по этим инструкциям
https://www.tensorflow.org/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support

Я считаю, что установил правильные версии от nvidia. имена файлов были
cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
и cudnn-9.0-linux-x64-v7.tgz (версия 7.0.5)

Я установил путь в соответствии с этими инструкциями в документации по тензорному потоку, а также попробовал инструкции, которые abrahamrhoffman дал выше.

Когда я запускаю ldconfig -v, я получаю несколько библиотек 9.0, но не вижу 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

9.1 я не устанавливал, по крайней мере, намеренно. Это экземпляр amazon ec2 со стандартным ubuntu 16.04.
nvidia-smi также возвращает графический процессор, это экземпляр g3.4xlarge

любое руководство приветствуется.

Согласно руководству CUDNN по адресу:

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

Вам нужно скопировать распакованные файлы (из каталога, в котором вы запустили $ tar -xzvf cudnn-9.0-linux-x64-v7.tgz или аналогичного) в подкаталоги /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*

Спасибо за ответ @ entropy43.

Я должен был быть более конкретным. Я выполнил эти две команды cp и chmod после tar . Когда я смотрю в папку cuda, где я запустил команду tar, например ls cuda/lib64 я вижу
libcudnn.so libcudnn.so.7 libcudnn.so.7.0.5 libcudnn_static.a

Я также пробовал этот раздел из документа nvidia
2.3.2. Installing from a Debian File

и тесты проходят здесь в 2.4. Verifying

Любые советы по получению этой библиотеки приветствуются

Не мог бы кто-нибудь резюмировать, где это в настоящее время? Я использую TF1.3 + cuda 8 без проблем. Я хотел бы выполнить обновление, но похоже, что процесс установки новых версий полностью прерван. Совет?

Подобно тому, о чем Язабазра спрашивает выше:
TF1.6 Ubuntu 16.04
nvcc -V
nvcc: драйвер компилятора NVIDIA (R) Cuda
Авторское право (c) 2005-2017 NVIDIA Corporation
Построено Пт_нов__3_21: 07: 56_CDT_2017
Инструменты компиляции Cuda, выпуск 9.1, V9.1.85
Для чего требовался драйвер дисплея Nvidia 390+
Важно увидеть: 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

Щепотка, чтобы добавить ко всему этому, после больших хлопот я обновил Nvidia до последней версии, см. выше, поскольку в документации TF указано, что в более ранней версии были ошибки.

Теперь я получаю:
ImportError: libcublas.so.9.0: невозможно открыть файл общих объектов: нет такого файла или каталога
Не удалось загрузить собственную среду выполнения TensorFlow.

Похоже, что это несоответствие между 9.0 (хочет TF) и 9.1, которая является самой последней версией Nvidia.
Казалось бы, лучше работать с 9.1, но я бы предпочел избегать создания TF из исходников, и, похоже, это все равно не исправить ..

Можно ли заставить эту комбинацию работать с бинарным пакетом?
TF 1.6 Cuda 9.1 ??

Дальнейшее примечание и предостережение для тех, кто смотрит здесь ... после обновления моего материала Nvidia мои старые версии TF в отдельных conda env больше не работают, как хочет более старый TF: ImportError: libcublas.so.8.0: невозможно открыть файл общих объектов: нет такого файла или каталог
так что 9.1 не подойдет .. как насчет указания больше чем ?? против конкретных версий? просто предложение .. А пока я мертв в воде ..

Вот почему было бы неплохо иметь двоичный файл, поддерживающий 9.1: (из примечаний к выпуску TF1.6)

Использование XLA: GPU с CUDA 9 и CUDA 9.1 приводит к мусорным результатам и / или
CUDA_ILLEGAL_ADDRESS сбои.

В середине декабря 2017 года Google обнаружил, что компилятор PTX-to-SASS в CUDA 9
и CUDA 9.1 иногда неправильно вычисляет бит переноса, когда
разложение вычислений 64-битного адреса с большими смещениями (например, load [x + large_constant]) в 32-битную арифметику в SASS.

В результате эти версии ptxas неправильно компилируют большинство программ XLA, которые используют
более 4 ГБ временной памяти. Это приводит к появлению мусора и / или
CUDA_ERROR_ILLEGAL_ADDRESS сбои.

Исправление в CUDA 9.1.121 ожидается в конце февраля 2018 г. Мы не ожидаем
исправление для CUDA 9.0.x. Пока исправление не будет доступно, единственный обходной путь -
перейти на CUDA 8.0.x
или отключите XLA: GPU.

Может, это делает кто-нибудь из ночных клубов?

Другое решение? можно ли установить несколько версий Cuda, поскольку TF, похоже, ищет определенные версии? Если да, то какие-нибудь советы, как это сделать?

Итак, в идеале я смогу запустить TF 1.4 (для которого в настоящее время требуется Cuda 8.0) в одной среде conda и TF 1.6 (для которой в настоящее время требуется Cuda 9.0) в другой?

Итак, я просто добавил sudo apt-get -y install cuda-toolkit-9.0, и я начал работать с TF1.6

@dartdog после установки cuda-toolkit-9.0, столкнулись ли вы с проблемой 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}}

Это определенно должно быть включено в документацию по тензорному потоку, как сказал @bwesen. Его также следует включить в список ошибок. Возможно ли это вообще? Думаю, я собираюсь открыть новую проблему с просьбой либо добавить поддержку cuda 9.1, либо упомянуть, что вам нужна cuda 9.0 специально в документации, а также включить это в список ошибок

Хорошо, парни. Я открыл новый выпуск по адресу https://github.com/tensorflow/tensorflow/issues/17629.

Я тоже занимался этой проблемой. Что у меня сработало с tenorflow-gpu 1.6:

  • Я скачал инструментарий из архива как 9.0, но он установился как 9.1 (не знаю почему ...)
  • По-прежнему не найден libcublas.so.9.0
  • Выполните: sudo apt-get install cuda-libraries-9-0 как предложено в конце инструкций по установке.
  • Проблема вроде бы решена.

Если вы хотите, чтобы тензорный поток работал с вашей версией CUDA, вам необходимо сначала удалить его, затем скомпилировать из источника и указать версию CUDA во время работы ./configure
Подробную информацию можно найти здесь: https://www.tensorflow.org/install/install_sources.

Я пробую эту ссылку (которая создает тензорный поток вручную)

Может потребоваться больше времени, но таким образом вы можете определить второстепенные версии.

@ mldm4 на самом деле команда sudo apt-get install cuda вероятно, установила 9.1 для вас, потому что она также была в вашей системе. У меня была такая же проблема, и я сделал sudo apt-get install cuda-9-0 для установки конкретной версии (я тоже скачал из архива).
Я думаю, что созданная вами команда ( sudo apt-get install cuda-libraries-9-0 ) также загружает cuda 9.0.
Эта проблема не решена, как я уже упоминал в вопросе 17629, я знаю, что проблема в том, что TensorFlow ожидает версию 9.0, в то время как у меня была версия 9.1. Проблема состоит в том, чтобы более четко упомянуть об этом в документации и включить его в общие проблемы установки в нижней части документации или обновить тензорный поток, чтобы принять Cuda 9.1.

так что решения еще нет?

@thread :

* Пожалуйста, внимательно прочтите сообщения! *

Ваша работа - прочитать ветку и найти решение; не просто прокрутите до конца.

@abrahamrhoffman , это грубо.

Я просто изменил свой пакет batchrc с cuda-9.1 на cuda. Тогда мой тензорный поток может найти libcublas.so.9.0

Просто к сведению: веб-сайт nvidia для загрузки cuda-9.0 на самом деле загружает 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 Вероятно, это потому, что у вас также установлена sudo apt-get install cuda-9-0 вместо sudo apt-get install cuda .

@ cubetastic33 Я понизил свою версию tenorflow и использую cuda8.0, все равно спасибо.

@DanlanChen, но я думаю, что предпочтительнее использовать последнюю версию. Итак, если вы когда-нибудь захотите обновиться, теперь вы знаете, что делать! :улыбка:

У меня такая же проблема, но я пытаюсь запустить тензорный поток с помощью nvidia-docker. У меня на хосте установлена ​​cuda-9-0, но когда я пытаюсь запустить свой докер-контейнер, я получаю

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

@ magick93 и все такое!

СЛУШАЙТЕ! Все, что вам нужно, это понизить версию cuda 9.1 до cuda 9.0. Вот и все! Просто сделайте это (если вы скачали cuda 9.1 до этого, вы можете выполнить следующую команду в своем терминале):

sudo apt-get install cuda-9-0 и удалите cuda 9.1 с помощью rm -rf.

Кстати, не забудьте изменить $ PATH в ~/.bashrc (9.1 -> 9.0).

Привет @ Oktai15

СЛУШАЙТЕ! Все, что вам нужно, это понизить версию cuda 9.1 до cuda 9.0. Вот и все! Просто сделай это

Да, я делал это - много раз.

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

Тем не менее, я даже не могу запустить этот простой скрипт тензорного потока, так как в результате я получаю 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()

У меня была та же проблема, что и у всех, установка 9.0 помогла, но потом возникли другие проблемы.
Затем я последовал этому, и, наконец, у меня это сработало.

@ Oktai15 rm -rf удаляет вашу систему? Пожалуйста, будьте более ясны, потому что люди могут попробовать это, не заходя в требуемый каталог, и в конечном итоге очистят свою домашнюю папку.

@ magick93, похоже, ваша проблема в другом, а не в версии CUDA.

У меня была такая же проблема, я думаю, что решил немного изменить, эта комбинация работает для меня

Ubuntu 16, cuda 9.0, cudnn 7.0, питон 3,5, тензорный поток 1.6

Если вы устанавливаете новый cuda, хотя у вас все еще есть предыдущая версия, обязательно укажите путь, подобный этому

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, ваша версия Ubuntu на самом деле не имеет значения. Дело в том, что TensorFlow 1.6 ожидает, что CUDA будет версии 9.0, а cuDNN - версии 7.0.4 (да, значение 0.4 _does_ имеет значение)

Отслеживание (последний вызов последний):
Файл "utils.py", строка 15, в
импортировать тензорный поток как tf
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/__init__.py", строка 24, в
из импорта tensorflow.python *
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", строка 49, в
из tensorflow.python импорта pywrap_tensorflow
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", строка 74, в
поднять ImportError (msg)
ImportError: Traceback (последний вызов последним):
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", строка 58, в
из импорта tensorflow.python.pywrap_tensorflow_internal *
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", строка 28, в
_pywrap_tensorflow_internal = swig_import_helper ()
Файл "/home/sagar/miniconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", строка 24, в swig_import_helper
_mod = imp.load_module ('_ pywrap_tensorflow_internal', fp, путь, описание)
ImportError: libcublas.so.9.0: невозможно открыть файл общих объектов: нет такого файла или каталога

Не удалось загрузить собственную среду выполнения TensorFlow.

См. Https://www.tensorflow.org/install/install_sources#common_installation_problems.
sudo apt-get install cuda-7-0
vim ~ / .bashrc
экспорт ПУТЬ = / usr / local / cuda-7.0 / bin $ {ПУТЬ: +: $ {ПУТЬ}}
экспорт LD_LIBRARY_PATH = / usr / local / cuda7.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PATH}}
экспорт ПУТЬ = / usr / local / cuda-9.0 / bin $ {ПУТЬ: +: $ {ПУТЬ}}
экспорт LD_LIBRARY_PATH = / usr / local / cuda9.0 / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PA
по некоторым общим причинам и решениям. Включить всю трассировку стека
над этим сообщением об ошибке при обращении за помощью.

Как упоминалось в @pascalwhoop , я следовал инструкциям здесь http://www.python36.com/install-tensorflow141-gpu/ для создания Tensorflow из исходного кода.

Как только он сказал cuda 9.0, я изменил его на 9.1, а cudnn 7.0 я поставил 7.1.2.

Пока работает нормально!

@SAGGSOC зачем вы устанавливаете cuda 7.0? Вам нужны CUDA 9.0 и CuDNN 7.0.4

Всем, у кого были проблемы: кто готов превратить это в надежный образ докера, которым поделились с сообществом. Скорее сделайте загрузку образа размером 6 ГБ, который работает, чем DLing 5 версий CuDNN, прежде чем все заработает.

https://github.com/pascalwhoop/tf_openailab_gpu_docker

Некоторое время назад я начал, но остановился из-за смещения фокуса проекта. Но я думаю, что к этому стоит стремиться. Устраняет проблемы поиска правильной комбинации из 17 движущихся частей вдали от большинства людей.

Просто чтобы прояснить несколько вещей для тех, кто может наткнуться на этот пост. У меня в системе установлены cuda-8.0, cuda-9.0, cuda-9.1. Вам не нужно ничего удалять, чтобы он работал с тензорным потоком. Вместо этого, если в вашей системе отсутствует cuda-9.0, как уже указали другие, вам необходимо установить его, что является предварительным условием для правильной работы tenorflow.

Если в вашей системе установлен cuda-9.0, а тензорный поток снова жалуется на libcublas.so.9.0 как говорили другие, покажите, что во время выполнения через переменную среды LD_LIBRARY_PATH в вашем .bashrc сделайте это укажите на /usr/local/cuda-9.0/lib64 . Это должно работать даже для tenorflow 1.7.

То, что я пытался, но не удалось, - это сборка из исходников. Почему-то базел всегда выходит с ошибкой. Если вы попытаетесь построить с помощью cuda-9.0 / cuda-9.1 и cudnn7, он пожалуется на gcc7. Использование компиляции gcc5, похоже, работает нормально, но в конце я всегда получаю сообщение об ошибке, и сборка не выполняется.

У меня вопрос: удалось ли кому-нибудь скомпилировать из исходников cuda-9.1 / cuda-9.0 без проблем?

Это сработало для меня:

Загрузите CUDA Toolkit 9.0 из раздела предыдущих выпусков NVidia.
Потом:

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

Обратите внимание на 9.0 в последней строке выше.

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

Моя установка
Tensorflow 1.7
cuDNN 7.1.2
Ubuntu 16.04

этемиз
У меня такая же настройка, и она мне тоже подходит.

Спасибо за ваше сообщение :)

У меня была такая же ситуация. У меня был cuda 9.1, и tenorflow не нашел библиотек для cuda 9.0.

Я установил cuda 9.0 с помощью команды: sudo apt-get install cuda-libraries-9-0

Это решило мою проблему.

При установленных cuda 8 и 9.0 установка LD_LIBRARY_PATH в .bashrc и .profile не работает. Итак, я установил
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 в поле переменной среды pycharm, и он работает.

вышеупомянутое работало для установки на Ubuntu Server 17. а именно,

  • установка cuda-9.0 (НЕ 9.1)
  • cuDNN v7.1.2 (21 марта 2018 г.) для CUDA 9.0
  • все остальное по официальной инструкции по установке tf

намного проще, чем компилировать.

будьте осторожны, пользователи conda. Я столкнулся с той же проблемой и чесал голову в течение двух дней, пока, наконец, не обнаружил, что локальная копия libcudnn.so использовалась conda в разделе:
/miniconda3/lib/libcudnn.so, который указывает на libcudnn.so.7, который указывает на libcudnn.so.7.0.5
Я не помню, кто и как его туда поместил, но в значительной степени он перегрузил системную библиотеку по умолчанию libcudnn.so.7.1.2 !!!

после удаления все работает как шарм:
tenorflow 1.7 или 1.8-nightly, cuda-9.1, cudnn-7.1.2 в ubuntu 16.04

Как-то я решил это, установив:
cuda 9.1 (из диспетчера пакетов),
cudnn 7.1 для 9.1
и из анаконды:
используя эту команду по умолчанию 'conda install -c anaconda tensorflow-gpu'
cudatoolkit 9.0,
тензорный поток 1,7,
tenorflow-gpu 1.7

Я использовал Antergos linux, GTX 1060 на своем ПК. Он также работал в моем ноутбуке (Xubuntu 18.04, GT 840m). В своем блокноте я использовал:
cuda 9.1 (от nvidia ppa), cudnn 7.1 для 9.1 (от nvidia web), а все остальное было таким же

Спасибо, @Suananda! Это работает как по волшебству.

Если у вас старая версия CUDA, ссылка на библиотеку может указывать на старую библиотеку, даже если вы устанавливаете новую версию CUDA, особенно если вы устанавливаете ее вручную. Попробуйте удалить старую установку, а затем sudo ldconfig, чтобы обновить динамические ссылки.

Еще нет решения !?

Для всех, кто может наткнуться на это, я выпустил колесо сообщества последней версии tensorflow 1.8.0-rc1, созданной с помощью cuda 9.1. Вы можете найти это здесь !

Я обнаружил, что причина в ldconf, ldconfig - это команда управления библиотекой динамической компоновки, цель которой - позволить системе использовать библиотеку динамической компоновки.

По умолчанию ldconf выполняет поиск только в / lib и / usr / lib, а также в файле библиотеки в каталоге, указанном в файле конфигурации / etc / ld. так. конф.

поэтому все это вызвано динамической библиотекой CUDA в установленном пути CUDA, например: /path/cuda-9.0/lib64 или /path/cuda-9.0/lib. (например, мой CUDA установлен в /usr/local/cuda-9.0)

  1. если вы устанавливаете руководство CUDA, то после установки вы должны добавить путь cuda / lib64 в файл /etc/ld.so.conf
    sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
    тогда
    sudo ldconfig

    конечно, вы можете добавить руководство по пути, например:
    vim /etc/ld.so.conf
    затем добавьте в конец путь /usr/local/cuda-9.0/lib64.
    sudo ldconfig
    после операции снова откройте ipython или pycharm,
    импортировать тензорный поток как tf
    вау, вам понравится!

  2. если вы устанавливаете CUDA с помощью такой команды, как 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' или других, он может автоматически добавить путь cuda lib в /etc/ld.so.conf. но на всякий случай проверьте /etc/ld.so.conf и посмотрите, не добавляется ли к нему путь.

@NYcleaner
В Ubuntu есть файл /etc/ld.so.conf.d/cuda-9-1.conf содержащий:
/usr/local/cuda-9.1/targets/x86_64-linux/lib

Этого достаточно или мне нужно добавить к нему каталог /usr/local/cuda-9.1/lib64/ ?

@sebma
вы должны добавить к нему путь /usr/local/cuda-9.1/lib64/ , файлы * .so находятся в lib64

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

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

@mashu Ну, другой вариант состоит в том, что сообщество предоставляет готовые колеса . Если вы прочитаете 2–3 темы выше, вы также снова увидите это.

@Suananda Спасибо, у меня это работает в среде tenorflow conda.
Предложите официальным специалистам изменить руководство по установке " https://www.tensorflow.org/install/install_linux#InstallingAnaconda ", шаг 4 установки Anaconda, с "pip install --ignore-installed --upgrade tfBinaryURL" на "conda установить -c anaconda tensorflow-gpu "

Softlink, похоже, не решает эту проблему:

➜  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

Еще есть:

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:

когда я запускаю свой код непосредственно в среде Linux, все в порядке. Но когда я запускаю локальный pycharm через удаленный интерпретатор, я сталкиваюсь с проблемой: ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory. "Failed to load the native TensorFlow runtime."

экспорт ПУТЬ = $ {ПУТЬ}: / usr / local / cuda-9.0 / bin
экспорт CUDA_HOME = $ {CUDA_HOME}: / usr / local / cuda: /usr/local/cuda-9.0
экспорт LD_LIBRARY_PATH = $ {LD_LIBRARY_PATH}: / usr / local / cuda-9.0 / lib64
экспорт LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / cuda / extras / CUPTI / lib64

если используете pycharm - добавьте в интерпретатор

как насчет ебли, я просто хочу использовать только tensorflow1.8 и cuda9.1?

@dongzhuoyao Так в чем проблема? посмотрите мой комментарий 6 веток выше, и вы найдете там свое решение!

Думаю, проблема снова возникла с cuda 9.2 и tensorflow-gpu 1.8 . В виртуальном я получаю:

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

Моя папка /usr/local/cuda-9.2/lib64 имеет следующие библиотеки 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

Версии:

Ubuntu 16.04
cuda 9.2
cudnn 7.1.4
tensorflow-gpu 1.8.0

Нам понадобится обновление для tenorflow-gpu, чтобы использовать cuda 9.2.

Кроме того, если бы мне пришлось перейти на cuda 9.0, мне пришлось бы сначала удалить cuda 9.2 или сразу же установить 9.0? Будут ли у меня конфликтующие установки?

@mebble Вот, ссылка . Это колесо tf 1.8 для cuda 9.2.

если бы мне пришлось перейти на cuda 9.0, мне пришлось бы сначала удалить cuda 9.2

Не понижайте рейтинг. Установите любую другую версию, которую вы хотите, они будут установлены по адресу /usr/local/cuda-x.x

Спасибо! Я забыл упомянуть, что я использую python 3.5.2 и pip 10.0.1 . Я думаю, что колесо предназначено для python 3.6, поэтому установка не работает. У тебя тоже есть на 3.5?

@ kirk86 после установки того, что вы ему дали, выдает аналогичную ошибку для libmpi.so.40
Я использую CentOS и графический процессор K80, cuda 9.2 и cudnn v7.1

Предположение

Насколько я знаю, у вас могут быть подпакеты xxx, yyy, zzz и т. Д. И установить их следующим образом

pip install mainpackage[xxx]

Таким образом могут быть предоставлены различные сосуществующие серверные части. Tensorflow можно построить с разными параметрами, поэтому таким образом можно создать как минимум пару сборок cuda-toolkit.

Весь смысл пакета состоит в том, чтобы сэкономить время сборки, но сборка пакета для очень специфического набора библиотек, который устанавливается нормально, но не работает, контрпродуктивна. Лучше вообще не иметь такой упаковки.

@mebble просто создает виртуальную среду

@ pavan-08 Установите openmpi в вашу систему, а также nccl 2.x независимо от последней версии от nvidia. Я скомпилировал tf с большинством пакетов и библиотек, поэтому его можно использовать hdfs, kafta, aws и т. Д. Вот почему спрашивает libmpi.so, потому что он из библиотеки openmpi.

С cuda 9.2 и tensorflow-gpu 1.8 я не могу создать тензорный поток

объявленный вывод 'external / local_config_cuda / cuda / cuda / lib / libcudnn.so.7' представляет собой висящую символическую ссылку

Символьная ссылка существует

Версии:

Ubuntu 17.10
cuda 9.2
cudnn 7.1.4
tenorflow-gpu 1.8.0

Это работает для меня (tenorflow-gpu == 1.8.0, а версия cuda - 9.0, установить в anaconda)

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

предложение от: https://stackoverflow.com/questions/48428415/importerror-libcublas-so-9-0-cannot-open-shared-object-file

@Jackiexiao Да, это то, что я собирался сказать. Я использую рабочую станцию, поэтому все, что мне нужно было сделать, это использовать CUDA 9.0 вместо 9.2 (поскольку было установлено несколько версий CUDA)

Это сработало для меня:
Поскольку для Tensorflow> 1.4 требуется CUDA 9, я удалил все версии CUDA:

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

Установите точно CUDA 9.0 и CuDNN 7.0.x и перезагрузитесь.

Пожалуйста, обратитесь к комбинациям CUDA, CuDNN и Tensorflow .

Эта ошибка возникает в основном из-за неправильных комбинаций версий Nvidia-driver, CUDA, CuDNN и Tensorflow-gpu.
image

Спасибо!

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

签名 由 网易 邮箱 大师 定制

18.08.2018 в 08:00 Дхрув Шривастава написал:

Пожалуйста, обратитесь к комбинациям CUDA и CuDNN.

Эта ошибка возникает в основном из-за неправильных комбинаций версий Nvidia-driver, CUDA, CuDNN и Tensorflow-gpu.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите обсуждение.

@dhruvhacks Хорошо. Я думаю, что люди должны установить правильную версию tensorflow-gpu с правильной версией cuda.

Я использую Ubuntu 18.08, и у меня была установлена ​​Cuda 9.0 по адресу:

/usr/local/cuda-9.0

Решил поискать libcublas.so.9.0 :

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

Это сказало мне, что файл находится в /usr/local/cuda-9.0/lib64/stubs/libcublas.so.9.0 , что помогло мне понять, что у меня есть две проблемы: В ~/.bash_profile я установил: export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/ , но мой файл был в stubs Каталог

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

Наконец, libcublas.so.9.0 принадлежал пользователю root, поэтому я изменил разрешения и владельца файла:

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

И все было хорошо!

При установленных cuda 8 и 9.0 установка LD_LIBRARY_PATH в .bashrc и .profile не работает. Итак, я установил
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64 в поле переменной среды pycharm, и он работает.

Точно, большое спасибо за решение проблемы, я потратил дни, чтобы решить эту проблему. действительно ценю приятеля

Я также сталкиваюсь с этой проблемой, когда использую PyCharm для отладки кода на удаленном сервере (ami глубокого обучения aws). Версия cuda - 9.0, cudnn - 7.1.4, а tensorflow - 1.10.0 (для графического процессора). Я могу импортировать тензорный поток обычно через терминал, подключенный к моему серверу, но не могу импортировать тензорный поток в консоль python PyCharm. Проблема возникает в это время. Поэтому я не могу отлаживать PyCharm ...
Мое решение : введите эту строку в терминал после подключения к вашему серверу.

sudo ldconfig /usr/local/cuda/lib64

И я сослался на эту ссылку

@NYcleaner Большое спасибо! Это помогает! и я обнаружил, что просто используйте символическую ссылку.
sudo echo "/ usr / local / cuda / lib64 /" >> /etc/ld.so.conf
sudo ldconfig

Это все еще проблема с Cuda 9.1 и Tensorflow 1.11.

cuda 10.0 тензорный поток 1.11

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

Почему бы просто не установить 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

В ubuntu 18.04 cuda 9-0 (официально) недоступна. Но это работает.

Всем привет,
Я использую PyTorch в максимально возможной степени, но для конкретного проекта, где мне нужно экспортировать модель (Keras) в tensorflowjs, я вынужден использовать tf. Единственное решение, которое сработало для меня, - это сборка из исходников после установки CUDA из мультивселенной Ubuntu, как описано здесь:

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

Приятного шанса!

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

Глупое решение

Я установил Cuda 10 и последнюю версию Tensor Flow, но я получил ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , я перешел на более раннюю версию и все еще получаю это сообщение ...

Я установил Cuda 10 и последнюю версию Tensor Flow, но я получил ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory , я перешел на более раннюю версию и все еще получаю это сообщение ...

Не могли бы вы сообщить нам версию ОС и точную команду, которую вы дали для перехода на более раннюю версию?

Пробовал Deepin 15.8 и Mint 19.1, позже собираюсь протестировать Windows 10. Команда pip install --upgrade tensorflow-gpu==version , пробовал мастер версии: 1.9.0, 1.10.1, 1.11.0 и 1.12.0. Версия cuda и драйверы:

image

@Sphinxs , на мой взгляд, у вас есть два способа: а) перекомпилировать колесо python локально, чтобы оно указывало на установленную версию cuda, или б) установить cuda-9.0, как я сделал для моей установки 18.04, и он все еще работает через несколько месяцев.

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

этот человек прав. TF МОЖЕТ быть скомпилирован для работы с более современными версиями CUDA ... почему бы просто не предложить это большинству людей с пакетом tensorflow-gpu-cuda110 или чем-то временным, пока библиотека не сможет динамически определить базовую версию cuda?

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

Мне это надоело !!!!

Мне это надоело !!!!

Этот комментарий ничего не добавляет к проблеме. Также никто не заставляет кого-либо использовать TF, но если вам действительно нужно и не можете заставить работать пакеты pip, почему бы не собрать его самостоятельно? В какой-то момент я этим и закончил. Я видел, что здесь также есть сборки, поддерживаемые сообществом
https://github.com/tensorflow/tensorflow просто прокрутите вниз.
Может быть, собрать для своего графического процессора и внести свой вклад?

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

Мне это надоело !!!!

Это страница с проблемами. Пожалуйста, укажите свои проблемы, чтобы их можно было исправить или, что еще лучше, помочь исправить их.

@raphaunix, могу я спросить, откуда

Я получил Tensorflow 1.11.0, выполнив следующие команды:

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

Я обнаружил, что причина в ldconf, ldconfig - это команда управления библиотекой динамической компоновки, цель которой - позволить системе использовать библиотеку динамической компоновки.

По умолчанию ldconf выполняет поиск только в / lib и / usr / lib, а также в файле библиотеки в каталоге, указанном в файле конфигурации / etc / ld. так. конф.

поэтому все это вызвано динамической библиотекой CUDA в установленном пути CUDA, например: /path/cuda-9.0/lib64 или /path/cuda-9.0/lib. (например, мой CUDA установлен в /usr/local/cuda-9.0)

1. если вы устанавливаете руководство CUDA, то после установки вы должны добавить путь cuda / lib64 в файл /etc/ld.so.conf
sudo echo "/usr/local/cuda-9.0/lib64/" >> /etc/ld.so.conf
тогда
sudo ldconfig
конечно, вы можете добавить руководство по пути, например:
vim /etc/ld.so.conf
затем добавьте в конец путь /usr/local/cuda-9.0.
затем обнови это
sudo ldconfig
после операции снова откройте ipython или pycharm,
import tensorflow as tf
вау, вам понравится!

если вы устанавливаете CUDA с помощью такой команды, как 'dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb' или других, он может автоматически добавить путь cuda lib в /etc/ld.so.conf. но на всякий случай проверьте /etc/ld.so.conf и посмотрите, не добавляется ли к нему путь.

@jabalazs Вместо conda install cudatoolkit==9.0 я попробовал pip install cudatoolkit==9.0 но это не сработало, знаете почему?

Я обнаружил, что моя среда выполнения на colab не использует графический процессор, поэтому я получил свою ошибку

Еще лучшее решение - удалить tenorflow, установить pytorch
Почему тензорный поток может так легко тормозиться?
Почему я не могу просто установить и запустить?
Почему с pytorch так просто, а с tf - непредсказуемо? Что с этим не так?

Хорошее решение @dodler ! но я думаю, что вам не хватает команд, чтобы облегчить выполнение этого замечательного совета через xD.

pip uninstall tensorflow
pip install torch

Удачного кодирования!

Я столкнулся с той же ошибкой, пытаясь использовать Thundersvm для ускорения NuSVR с помощью графических процессоров в Google Colab.
Установка Cuda 9.0 решила проблему.
Просто следуйте:

!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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги