본문 바로가기
Artificial Intelligence/TensorFlow

[TensorFlow] Ubuntu에 텐서플로우 설치하기

by dohk325 2017. 10. 4.
반응형

                                                                                                                                                         

                                                                                                                                                                                                                   

                                                                                                                                                         

                                                                                                                                                                                                             

                                                                                                                                                                                                          

tensorflow 설치는 그렇게 어렵지 않습니다. 
다만, 할 일이 많습니다. 
16년 12월 24일 기준 
설치 환경 : Ubuntu 16.04 LTS / 64-bit 
그래픽카드 사양 : NVIDIA GeForce GT 635M
참고로 텐서플로우는 64bit 머신에서만 가능합니다. GPU가 없어도 CPU만으로도 사용가능하며, 최근에는 리눅스나 맥뿐만 아니라 윈도우에서도 사용가능하게 되었습니다. 이 문서는 우분투 16.04를 대상으로만 합니다.

1. 드라이버 업데이트

우분투 시스템 설정 -> 소프트웨어&업데이트 -> 추가 드라이버 -> NVIDIA binary driver - version 367.57 선택 후 바뀐 내용 적용 클릭

2. CUDA 다운로드 (버전 8.0RC) 회원 가입 필수

deb파일로 받아서는 안됨. Latest Release에 있는 링크(현재 CUDA Toolkit 8.0)으로 간다. 그 다음, 차례대로 Linux ->x86_64 -> Ubuntu -> 16.04 -> runfile(local)을 선택한 후 다운로드 합니다. 그 후, 다운로드 받은 파일에 chmod 777 실행 권한을 줍니다. 64bit 머신이어도 x86_64를 선택해야 합니다. 
다운로드 사이트 
다운로드 사이트 
$ chmod +x filename.run

3. cuDNN 다운로드 (현재 버전 5.1 Library for Linux) 회원 가입 필수

다운로드 사이트 
Download -> I Agree To the Terms of the cuDNN Software License Agreement에 체크 -> Download cuDNN v5.1 (August 10, 2016), for CUDA 8.0 -> cuDNN v5.1 Library for Linux 
다운로드한 파일의 압축을 풀고, 외부 모듈이 실행할 수 있도록 이동하고 접근 권한을 바꿔줍니다.

4. CUDA 설치

다운로드받은 CUDA 파일을 다음의 방법으로 설치하면 됩니다. 

$ sudo sh cuda_8.0.44_linux.run(다운로드 받은 쿠다파일)
 


그 다음 사용자의 선택을 요구하는 화면이 나오면 다음의 순서대로 타이핑하거나 입력합니다. 
accept -> n -> y -> enter -> y -> y -> enter

5. cudnn 압축을 풀어서 나온 폴더인 cuda-8.0 혹은 cuda 폴더를 /usr/local/ 에 복사하거나 이동합니다.

$ sudo mv /home/your-user-name/다운로드/cuda /usr/local/

6. 환경 구성

라이브러리와 CUDA를 사용할 수 있도록 경로를 추가해야 합니다. 먼저 환경 파일을 엽니다. 
$ sudo gedit ~/.bashrc
아래 내용을 .bashrc 파일의 마지막에 추가합니다. 

export CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
 

추가한 내용을 즉각 반영합니다. 
$ source ~/.bashrc

7. 드라이버 및 CUDA 설치 확인

$ nvcc --version

8. cuDNN 설치

이건 설치할 게 없습니다. 다운로드한 파일을 압축을 풀어서 복사해서 붙여넣기만 하면 됩니다. 앞에서 CUDA 샘플을 구동하기 위해 샘플 폴더로 이동했기 때문에 홈 폴더로 이동하는 것까지 포함합니다. 


$ cd ~
$ cd 다운로드
$ tar xvzf cudnn-8.0-linux-x64-v5.1.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/   
$ sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64/
 


만약 /usr/local/에 디렉토리가 없다면 생성해서 옮겨줍니다.

9. 파이썬 환경 구축

파이썬 3.5 
$ sudo apt-get install python3-pip python3-numpy swig python3-dev python3-wheel 
파이썬 2.7 
$ sudo apt-get install python-pip python-numpy swig python-dev python-wheel

10. 자바 JDK 설치

텐서플로우를 빌드하기 위해 JDK를 먼저 설치해야 합니다. 이 부분은 파이썬 버전과는 상관 없는 부분입니다. 


$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
 


다른 창이 뜬다면, [확인] -> [예] 를 선택합니다.

텐서플로우 설치

그 다음엔 그냥 텐서플로우 공식 문서를 참고하면 됩니다. 다음의 내용들은 모두 공식 문서를 참고한 내용입니다.$ sudo apt-get install python-pip python-dev 
$ pip install tensorflow 
$ pip install tensorflow-gpu 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp27-none-linux_x86_64.whl'''<br> $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl<br> $ sudo pip install –upgrade $TF_BINARY_URL``` 

linux의 경우, python2와 python3 모두 설치해줍니다. 그래야 편합니다.ㅎ

$ pip3 install tensorflow 
$ pip3 install tensorflow-gpu 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp35-cp35m-linux_x86_64.whl 
$ sudo pip3 install --upgrade $TF_BINARY_URL
python2, python3 에 대해 모두 완료했다면 마지막으로 다음을 입력해줍니다. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

tensorflow debugger 설치

여기서부터는 TensorFlow Debugger 설치에 대한 내용입니다. TDB는 실제로 많이 사용되는지는 모르겠지만, 원하지 않는 분은 설치하지 않으셔도 되는 부분입니다. 이하의 내용들은 이 사이트 에서 참고한 내용입니다.
tensorflow debugger는 tdb라고도 하는데, ericjang이라는 사람이 만든 라이브러리입니다. 아직 텐서플로우의 공식 라이브러리로 등록되지는 않았습니다.(16년 12월 기준) 
TDB는 반드시 python2 환경하에서 설치해주어야 한다.

설치는 어렵지 않습니다. 

pip install tfdebugger
 


run the following in a Python2 terminal


import notebook.nbextensions
import urllib
import zipfile
SOURCE_URL = 'https://github.com/ericjang/tdb/releases/download/tdb_ext_v0.1/tdb_ext.zip'
urllib.urlretrieve(SOURCE_URL, 'tdb_ext.zip')
with zipfile.ZipFile('tdb_ext.zip', "r") as z:
    z.extractall("")
notebook.nbextensions.install_nbextension('tdb_ext',user=True)
 

주의할 점은 python2가 source activate...식으로 실행하여 시작하는 경우에는 꼭 source activate환경하에서 다시 텐서플로우와 각종 라이브러리(matplotlib 등)를 설치한 후에, 그 위에서 tdb를 설치해야 한다는 것입니다. source activate 이것 때문에 tdb 설치 시 고생좀 했습니다…. 
마치 새로운 환경에 설치된 python2처럼 행동했기 때문입니다. 주의해야 합니다.
TDB가 성공적으로 설치되었는지 확인하기 위해서는 다음의 예제를 참고하세요. 
예제
저는 python3로 텐서플로우를 사용해왔기 때문에 당연히 python이 아닌, python3 쉘로 들어가 설치하려 했습니다만 시작부터 여러차례 삐걱거렸습니다. 참으면서 계속 수정해나가다가 나중에는 라이브러리 하나하나의 디펜던시를 수정하고 있는 어이없는 모습을 보게 되었습니다. 포기하고 python2용 텐서플로우를 다시 설치하고 tdb 설치하여 돌려보니 너~무 잘 돌아가더군요… 시간이 아까웠습니다..

반응형