2017-03-08 47 views
3

我使用Ubuntu 16.04,Cuda 8.0和cudann-v5.1。我卸载了Tensorflow-CPU版本并重新启用了tensorflow-GPU。其次这里给出的说明:https://alliseesolutions.wordpress.com/2016/09/08/install-gpu-tensorflow-from-sources-w-ubuntu-16-04-and-cuda-8-0-rc/ImportError:libnvidia-fatbinaryloader.so.375.39:无法打开共享目标文件:没有这样的文件或目录

但是,当我尝试加载tensorflow,我得到以下错误:

>>> import tensorflow as tf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module> 
    from tensorflow.python import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 51, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 56, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
ImportError: libnvidia-fatbinaryloader.so.375.39: cannot open shared object file: No such file or directory 


Failed to load the native TensorFlow runtime. 
+0

同样的问题在这里。到目前为止,我通过在我的'LD_LIBRARY_PATH'环境变量中添加'/ usr/lib/nvidia-375'来传递错误信息。这可能不是问题的结局,虽然我没有解决,但我正在与另一个争斗。 –

回答

-1

注:TensorFlow需要MSVCP140.DLL,这可能不是你的系统上安装。如果在将tensorflow导入为tf时,会看到有关名为“_pywrap_tensorflow”的模块和/或DLL加载失败的错误,请检查MSVCP140.DLL是否在您的%PATH%中,如果没有,应该安装[Visual C++ 2015年可再发行组件(64版)[1]:https://www.microsoft.com/en-us/download/details.aspx?id=53587

我建议你看一下tensorflow的官方文档

我对不起你使用Ubuntu我用Windows10是很抱歉,我没有看到

10

我也遇到过这个问题,有两个问题需要解决。

  1. 我加/usr/lib/nvidia-375LD_LIBRARY_PATH环境变量。您可以验证文件libnvidia-fatbinaryloader.so.375.39位于该目录中。如果不是,找到它的位置并添加该路径。我不清楚为什么在编译源代码时没有正确地选择它。

  2. 接下来,我所遇到的错误:

    libstdc++.so.6: version `CXXABI_1.3.8' not found 
    

如果遇到那是因为你的gcc的新版本比在蟒蛇或Python安装使用。对我而言,这意味着要添加此路径到LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu/libstdc++.so.6

我还必须在错误消息中显示的路径上重命名旧的libstdc++.so.6。我找不到一种方法说服python不要在重命名文件的情况下查看默认路径。可能有更干净的方法来做到这一点,但这对我来说很有用。

安装中有很多隐藏的陷阱。

+0

与'LD_LIBRARY_PATH'有同样的问题,谢谢我不会想到像这样的东西 – user3085931

+1

谢谢。我确认设置LD_LIBRARY_PATH工作。 – dhfromkorea

+0

嗨,@David Parks,我在'/ usr/lib/nvidia-375'路径中有libnvidia-fatbinaryloader.so.375.66,但是我得到的错误是'ImportError:libnvidia-fatbinaryloader.so.375.39:无法打开共享对象文件:没有这样的文件或目录。该怎么办? – Akhilesh

1

在我的情况下,tensorflow-gpu已经安装并工作了一段时间,但是安装了nvidia-opencl-icd-384导致我的nvidia驱动程序从384.47升级到384.59,但没有升级libcuda,nvidia-settings和也许其他包。升级libcuda应该很有可能解决问题,但最好是清除并重新安装。

sudo apt-get purge nvidia* 
sudo apt-get install libcuda1-384 nvidia-384 nvidia-384-dev nvidia-prime nvidia-settings 

对于我来说,符号链接libn​​vidia-fatbinaryloader.so.384.37 - > libnvidia-fatbinaryloader.so.384.59在/ usr/lib目录和/ usr/LIB32没有纠正问题和LD_LIBRARY_PATH已经正确配置。

1

我遇到了同样的问题。这是我的解决方案!

  1. 找到libnvidia-fatbinaryloader.so.*文件在你电脑里。对我来说

    (ubuntu16.04):sudo find -iname libnvidia-fatbinaryloader.so*

,然后它显示libnvidia-fatbinaryloader.so.375.45
注意:有不同的版本号

  • 将文件复制到你cuda lib下,例如:/usr/local/cuda/lib64/

  • 将版本号375.45更改为您的错过荷兰国际集团的文件,375.39,如:

    mv libnvidia-fatbinaryloader.so.375.45 libnvidia-fatbinaryloader.so.375.39

  • 0

    @Akhilesh有正确的答案:

    sudo ln -s /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.66 /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.39 
    
    0

    在我来说,我以前有NVIDIA 387.34后来卸载它使用

    sudo apt-get purge nvidia* 
    

    然后我安装了驱动384.111,加了/usr/lib/nvidia-384我的LD_LIBRARY_PATH但tensorflow仍然要求libnvidia-fatbinaryloader.so.387.34

    我意识到/usr/lib/x86_64-linux-gnu/usr/lib/i386-linux-gnu仍然有libcuda.so.387.34 有一次,我从这两个目录tensorflow拿起384

    正确版本删除了这些文件

    apt-get remove nvidia-{{version}}卸载。然后做sudo apt-get purge nvidia*。我猜想这将更加万无一失。

    相关问题