从源代码构建TensorFlow后,看到libcudart.so和libcudnn错误

Bar*_*erg 43 tensorflow

我正在从源代码构建TensorFlow.构建似乎成功; 但是,当我的TensorFlow程序调用时import tensorflow,会出现以下一个或两个错误:

  • ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory
  • ImportError: libcudnn.5: cannot open shared object file: No such file or directory

小智 62

首先,出现以下错误:

ImportError:libcudart.so.8.0:无法打开共享对象文件:没有这样的文件或目录

确保你在你安装cuda包的路径中LD_LIBRARY_PATH包含你的lib64目录.你可以通过添加export一行代码来完成.bashrc.对于奥马尔来说,它看起来如下:

我修复此问题只是将cuda路径添加到我的.bashrc中

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


对我来说,我不得不做Omar的路线, export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/ 因为我有两个涉及cuda的目录(可能不是最好的).


其次,你确定你安装了cuDNN吗?请注意,这与常规cuda包不同.您需要注册,然后从以下页面下载并安装软件包:https: //developer.nvidia.com/cudnn


第三,我有同样的问题:

ImportError:libcudnn.5:无法打开共享对象文件:没有这样的文件或目录

事实证明libcudnn.5/usr/local/cuda/lib64/usr/local/cuda-8.0/lib64目录中没有.但是,我确实有一个libcudnn.so.6.*文件.为了解决这个问题,我创建了一个软链接:

ln -s libcudnn.so.6.* libcudnn.so.5
Run Code Online (Sandbox Code Playgroud)

在我的/usr/local/cuda/lib64目录中.现在一切都适合我.如果您已经拥有cuDNN,您的目录可能会有所不同,并且您的目录libcudnn.so.6.*可能是不同的版本,因此请检查.


Goi*_*Way 41

我遇到了同样的问题

In [1]: import tensorflow
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
     40     sys.setdlopenflags(_default_dlopen_flags | ctypes.RTLD_GLOBAL)
---> 41   from tensorflow.python.pywrap_tensorflow_internal import *
     42   from tensorflow.python.pywrap_tensorflow_internal import __version__

/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in <module>()
     27             return _mod
---> 28     _pywrap_tensorflow_internal = swig_import_helper()
     29     del swig_import_helper

/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in swig_import_helper()
     23             try:
---> 24                 _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
     25             finally:

/usr/local/lib/python3.5/imp.py in load_module(name, file, filename, details)
    241         else:
--> 242             return load_dynamic(name, filename, file)
    243     elif type_ == PKG_DIRECTORY:

/usr/local/lib/python3.5/imp.py in load_dynamic(name, path, file)
    341             name=name, loader=loader, origin=path)
--> 342         return _load(spec)
    343

ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-1-a649b509054f> in <module>()
----> 1 import tensorflow

/usr/local/lib/python3.5/site-packages/tensorflow/__init__.py in <module>()
     22
     23 # pylint: disable=wildcard-import
---> 24 from tensorflow.python import *
     25 # pylint: enable=wildcard-import
     26

/usr/local/lib/python3.5/site-packages/tensorflow/python/__init__.py in <module>()
     49 import numpy as np
     50
---> 51 from tensorflow.python import pywrap_tensorflow
     52
     53 # Protocol buffers

/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
     50 for some common reasons and solutions.  Include the entire stack trace
     51 above this error message when asking for help.""" % traceback.format_exc()
---> 52   raise ImportError(msg)
     53
     54 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long

ImportError: Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/usr/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/local/lib/python3.5/imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/local/lib/python3.5/imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
Run Code Online (Sandbox Code Playgroud)

我已经在它需要的时候安装了cudnn 6.0 libcudnn.so.5,显然它无法找到libcudnn.so.5.看来你的张量流需要cudnn 5.x,所以安装cudnn 5.x.

CUDNN安装

确保您已经安装了cuda 8.0并导出了PATHLD_LIBRARY_PATH

要安装cudnn 5.x,请尝试以下命令

提取tgz文件

$ tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
Run Code Online (Sandbox Code Playgroud)

检查文件

$ cd cuda/lib64/
$ ls -l
total 150908
lrwxrwxrwx 1 doom doom       13 Nov  7  2016 libcudnn.so -> libcudnn.so.5
lrwxrwxrwx 1 doom doom       18 Nov  7  2016 libcudnn.so.5 -> libcudnn.so.5.1.10
-rwxr-xr-x 1 doom doom 84163560 Nov  7  2016 libcudnn.so.5.1.10
-rw-r--r-- 1 doom doom 70364814 Nov  7  2016 libcudnn_static.a
Run Code Online (Sandbox Code Playgroud)

在这里你会看到2个符号链接文件,只是复制libcudnn.so.5.1.10libcudnn_static.a/usr/local/cuda/lib64

制作符号链接文件

$ cd /usr/local/cuda/lib64/
$ sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
$ sudo ln -s libcudnn.so.5 libcudnn.so
$ ls -l libcudnn*
lrwxrwxrwx 1 root root       13 May 24 09:24 libcudnn.so -> libcudnn.so.5
lrwxrwxrwx 1 root root       18 May 24 09:24 libcudnn.so.5 -> libcudnn.so.5.1.10
-rwxr-xr-x 1 root root 84163560 May 24 09:23 libcudnn.so.5.1.10
-rw-r--r-- 1 root root 70364814 May 24 09:23 libcudnn_static.a
Run Code Online (Sandbox Code Playgroud)

复制cudnn.hinclude目录/usr/local/cuda/include

$ sudo cp cudnn.h /usr/local/cuda/include/
Run Code Online (Sandbox Code Playgroud)

希望它能帮到你!


oma*_*rc7 10

我修复此问题只是将cuda路径添加到我的.bashrc中

export LD_LIBRARY_PATH=/usr/local/cuda/lib64/
Run Code Online (Sandbox Code Playgroud)

请记住,首先您需要访问nvidia Deep Learning页面,注册并下载cuDNN,将include和lib64文件夹中的文件解压缩并复制到您的cuda安装中.


moh*_*eeb 5

我看到了类似的错误(这篇文章的底部),但抱怨libcudnn.so.6而不是libcudart.so.8.0(参见下面的注释).

解:

  1. 下载' cuDNN v6.0 Library for Linux ':
  2. 按照上面 Alexander Yau 的说明安装cuDNN v6.0库.


注意:

Tensorflow安装说明(截至2017年8月20日)需要安装cuDNN v5.1,但我的Tensorflow安装(按照virtualenv中的安装说明)需要cuDNN v6.x(如错误所示).我不知道这是我的错误还是Tensorflow文档.不过,上述解决方案对我有用.


遇到错误:

In [1]: import tensorflow as tf
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-41389fad42b5> in <module>()
----> 1 import tensorflow as tf

/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/__init__.py in <module>()
     22 
     23 # pylint: disable=wildcard-import
---> 24 from tensorflow.python import *
     25 # pylint: enable=wildcard-import
     26 

/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/python/__init__.py in <module>()
     47 import numpy as np
     48 
---> 49 from tensorflow.python import pywrap_tensorflow
     50 
     51 # Protocol buffers

/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
     50 for some common reasons and solutions.  Include the entire stack trace
     51 above this error message when asking for help.""" % traceback.format_exc()
---> 52   raise ImportError(msg)
     53 
     54 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long

ImportError: Traceback (most recent call last):
  File "/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/home/haseeb/.virtualenvs/attention_transformer/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
Run Code Online (Sandbox Code Playgroud)

  • 这是文档中的错误 - 请参阅:https://github.com/tensorflow/tensorflow/issues/12416 (3认同)

Bar*_*erg 1

上述错误通常是由于运行脚本时未指定 Cuda SDK 或 cuDNN 的版本号而导致的configure。换句话说,在运行configure脚本时,始终指定版本号以响应以下两个问题:

  • Please specify the Cuda SDK version you want to use, e.g. 7.0.
  • Please specify the cuDNN version you want to use.

不接受系统默认值。