티스토리 뷰

아래와 같이 tensorflow-gpu 를 설치하였고,

pip install tensorflow-gpu==1.9

코드상에서 import 를 하려고하니 에러가 발생했습니다.

(tensorflow_p36) $ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in 
from tensorflow.python.pywrap_tensorflow_internal import *
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in 
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/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 "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "", line 1, in 
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/__init__.py", line 22, in 
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/__init__.py", line 49, in 
from tensorflow.python import pywrap_tensorflow
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 74, in 
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in 
from tensorflow.python.pywrap_tensorflow_internal import *
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in 
_pywrap_tensorflow_internal = swig_import_helper()
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/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 "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "/home/caley/anaconda3/envs/tensorflow_p36/lib/python3.6/imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory

위에 보이는 cuDNN 는 cuda 와는 별개의 라이브러리라서 따로 설치를 해줘야 하는데 아래 링크에서 파일을 내려받고 설치가 가능합니다.
https://developer.nvidia.com/rdp/cudnn-download

링크에 들어가서 파일을 다운로드 받기 위해서는 NVIDIA 에 가입해야 하는데 과정이 어렵지 않으니 가입을 진행하고 파일을 다운로드 받도록 합시다.


안에서 OS의 종류에 따라 Deb 파일 등도 제공하지만 왜인지 tgz로 설치하는게 개인적으로는 안심이되기 때문에 여기서는 cuDNN Library for Linux 파일을 내려 받았다는 가정으로 설치 방법을 공유합니다. 

파일을 다운로드 받고 아래와 같이 진행하도록 합니다.

$ tar -xzvf cudnn-9.0-linux-x64-v7.tgz
$ sudo cp cudnn-9.0/include/cudnn.h /usr/local/cuda/include 
$ sudo cp cudnn-9.0/lib64/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

그리고 아래와 같은 예시로 LD_LIBRARY_PATH 를 잡아줘야 한다. cuda-9.0 에 대한 예시입니다.

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


이렇게 설치가 끝났으면 다시 python 프롬프트를 접속해서 정상적으로 tensorflow import 되는 것을 확인해주면 됩니다.

$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.9.0'
>>>
깔끔하게 성공 :-)



댓글
댓글쓰기 폼