After building TensorFlow from source, seeing libcudart.so and libcudnn errors

后端 未结 12 2478
萌比男神i
萌比男神i 2020-11-28 06:19

I\'m building TensorFlow from source code. The build appears to succeed; however, when my TensorFlow program invokes import tensorflow, one or both of the foll

12条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-28 06:44

    I came across the same issue

    In [1]: import tensorflow
    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    /usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py in ()
         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 ()
         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)
     in ()
    ----> 1 import tensorflow
    
    /usr/local/lib/python3.5/site-packages/tensorflow/__init__.py in ()
         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 ()
         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 ()
         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 
        from tensorflow.python.pywrap_tensorflow_internal import *
      File "/usr/local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in 
        _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.
    

    I have installed cudnn 6.0 while it needs libcudnn.so.5, apparently it couldn't find libcudnn.so.5. It seems that your tensorflow needs cudnn 5.x, so install cudnn 5.x

    Make sure you have already installed cuda 8.0 and exported the PATH and LD_LIBRARY_PATH

    To install cudnn 5.x, try the following commands

    Extract tgz files

    $ tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
    

    Check the files

    $ 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
    

    Here you will see 2 symbolic link files, and just copy libcudnn.so.5.1.10 and libcudnn_static.a to /usr/local/cuda/lib64

    Make symbolic link files

    $ 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
    

    Copy cudnn.h in include directory to /usr/local/cuda/include

    $ sudo cp cudnn.h /usr/local/cuda/include/
    

    Hope it will help you!

提交回复
热议问题