텐서플로우(TensorFlow)를 파이참(Pycharm)에서 돌려보자 !! (ver. 1.1)

티스토리 메뉴 펼치기 댓글수44

Artificial Intelligence

텐서플로우(TensorFlow)를 파이참(Pycharm)에서 돌려보자 !! (ver. 1.1)

Yeramee
댓글수44

linear_regression.txt


목적 : Pycharm(Python IDE) 에서 Tensorflow 가 설치된 Anaconda Interpreter를 이용할 수 있는 개발환경을 구축한다. 

준비물 : USB, 내가 답답하지 않을 만큼의 성능 좋은 CPU, NVIDIA GPU( GPU 연산이 필요하지 않다면 없어도 된다)


서문
저는 컴퓨터 공학 관련 전공 수업을 한 번도 들어보지 못한 비전공자 입니다. 저처럼 컴맹인 사람들도 쉽게 개발환경을 구축하여 재미있는 인공지능 프로그래밍을 시작하였으면 하는 마음에서 글을 작성하였습니다. 전공자 분들 혹은 관련 직종에서 종사하시는 분들의 무자비한(?) 조언을 해주신다면 글을 업데이트 하는데 큰 도움이 될 것 같습니다.


감사합니다. 


요약

TensorFlow 는 리눅스 환경에서 이용할 수 있도록 개발 되었습니다. 그러나 많은 분들이 Window OS를 이용하고 계시기 때문에 Window +Linux의 듀얼 부팅이 가능한 상테에서 Tensorflow 를 설치해야 합니다. Linux의 설치 없이 가상머신을 활용하여 Tensorflow를 설치할 수도 있는데 그러한 경우에는 GPU 연산을 수행하는 데 제약이 있는 것 같습니다. 개발환경 구축과정은 다음과 같습니다. 

[CPU 연산만 수행하고자 하는 경우]

Ubuntu 14.04 설치 -> Anaconda 2.7 설치 -> Tensorflow 설치 -> Pycharm 설치 -> Pycharm에서 Anaconda 2.7 이용할 수 있도록 Setting

[GPU 연산도 수행하고자 하는 경우]

Ubuntu 14.04 설치 -> Anaconda 2.7 설치 -> CUDA Toolkit, Cudnn설치 -> Tensorflow 설치 -> Pycharm 설치 -> Pycharm에서 Anaconda 2.7 이용할 수 있도록 Setting


참고 : GPU 연산도 수행하고자 하는 경우에는 CUDA Toolkit, Cudnn을 설치하는 과정이 추가 됩니다. 그리고 GPU연산이 가능하게 하는 Tensorflow설치가 CPU연산만 하는 Tensorflow 설치보다 더 어렵고 설치 과정 중에 암 걸리실 수도 있으니 주의하시길 바랍니다. 


내 컴퓨터 환경

CPU : Intel i7-6700K CPU @ 4.00GHz * 8

RAM : 16GB

GPU : GeForce GTX 980/PCle/SSE2

OS : 64bit Ubuntu 14.04 LTS


Ubuntu 14.04 설치( CPU, GPU 공통) 

1. Ubuntu 14.04 를 무료로 다운 받아서 부팅 USB를 만들어 주세요. 참고로 SanDisk USB는 부팅용으로는 안 되는 경우가 많으니 8000원 짜리 삼성 USB를 이용해 주세요. 

2. Windows가 깔려있는 SSD에 Ubuntu 14.04를 설치하는 방법에 대한 소개는 여러 블로그에 잘 나와 있으니 여기서는 SSD : Windonw설치, HDD : Ubuntu 설치를 해보겠습니다. F2 혹은 Del키를 이용하여 시스템 Bios설정에서 USB 부팅 순위를 1순위로 해 주신 다음에 다시 USB를 넣고 재부팅합니다. 

3. Try without Install을 선택하시면 예쁜 우분투 화면이 나옵니다. 바탕화면에 보이는 우분투 설치하기 아이콘을 더블클릭합니다. 

4. 한국어를 선택하고 계속을 톡톡 누르면 우분투 설치 옵션으로 3가지가 나오는데, 기타를 선택합니다. 

5. 이 부분이 매우 중요한 부분입니다. 

주 파티션, Swap, 16GB( 가지고 계신 컴퓨터 RAM 사이즈)

주 파티션,    /   ,  EXT4 저널링,   200GB (Window로 치면 C드라이브 정도에 해당됩니다. 너무 적으면 Ubuntu, CUDA, Cudnn 및 각종 Utiltiy 설치시에 문제가 될 수 있습니다. 아                                                       무리 적어도 안전하게 20GB 정도는 확보해 주셔야 합니다. )

주 파티션,   /home  ,  EXT4 저치널링, 784GB (나머지 가능한 용량 전부 할당. 저는 1TB HDD 이므로 파티션 메모리 할당에 걱정이 없었습니다. Windows로 치면 D드라이브 정도에                                                           해당됩니다. )

부트로더 설치 위치 : 현재 우분투를 설치하고 있는  HDD 위치. 기본값으로 윈도우가 설치되어 있는 SSD를 가리키고 있는데 바꾸지 않고 그대로 계속 버튼 누르시면, 많이 괴롭습니다.


우분투를 설치하신 후, Bios 창에 다시 들어가셔서 우분투가 설치된 HDD를 부팅 우선 순위 최고로 놓아 두셔야 나중에 부팅시에 Ubuntu 로 부팅할래? Window로 부팅할래? 라는 질문을 받으실 수 있습니다. 


6. 우분투 설치가 끝나시고 인터넷을 연결하면 자동으로 필요한 업데이트들을 잡아 줍니다. 그리고 시스템 설정-> 소프트웨어&업데이트에 들어가셔서 추가 드라이버를 클릭하시고 기다리시면 NVIDIA Driver가 잡힙니다. 이것으로 드라이버를 변경/적용하고 재부팅 하여 주면 이로서 우분투 설치는 완료됩니다. (언어팩 설치, 한글 변환키 적용 및 기타 Utility 설치 및 최적화 작업은 여러 블로그에 잘 설명 되어 있습니다. 굳이 안 하셔도 이 글에서 하고자 하는 텐서플로우 개발환경 구축에는 아무 영향을 미치지 않습니다. )



Anaconda 2.7 설치 (CPU, GPU 공통)

1. Anaconda Download 여기에서 Anaconda for Linux, Python 2.7 - 64bit를 다운로드 받습니다. Python 3.5는 비추천입니다. Theano와도 호환이 되지 않으며 그 외에 여러가지 문제가 발생할 수 있습니다. 

2. ctrl + alt + t 로 터미널을 여신 다음에 anaconda를 다운받은 폴더로 이동합니다.

3. 다음을 입력합니다.

bash Anaconda2-4.0.0-Linux-x86_64.sh

bash는 .sh 로 확장자명이 있는 파일을 설치하는 명령어입니다. 

4. Anaconda 2.7를 설치하신 이후에 터미널에 cd ~ 를 입력하셔서 홈 폴더로 이동합니다. 

5. gedit .bashrc 를 입력하시면 메모장과 같은 파일이 자동으로 열립니다. gedit는 메모장을 열라는 명령어이고 .bashrc는 윈도우로 치면 환경 변수를 설정하는 명령어가 담긴 파일입니다

6. 열린 메모장 맨 마지막에 다음을 적어 주고 저장합니다. 당연히 yeram 대신에 현재 사용자 이름을 넣어야 됩니다. yeram은 제 이름이니까요.

export PATH=/home/yeram/anaconda2/bin:$PATH

7. 바뀐 환경변수를 적용하기 위해서 현재 홈 폴더 위치에서 source .bashrc 를 입력합니다. 혹은 터미널을 끄고 다시 켜셔도 됩니다. 

8. 이제 터미널 아무 디렉터리에서나 python 이라고 입력해 봅니다. 

9. python 2.7.11 Anaconda (64-bit) 이 포함된 프롬프트가 보이면서 파이썬이 작동하면 정상입니다. 

10. 만약 Anaconda 라는 글이 보이지 않고, 그냥 Python 2.7 이 구동된다면 Ubuntu자체에 내장된 python 이 켜진 겁니다. 플롯을 그려주는 library인 matplotlib를 import해 봅시다. 

     Anaconda 2.7 에서는 잘 import가 되는 반면, 우분투에 내장된 python이 켜진 경우라면 ImportError를 반환합니다. 

11. 이로써 Anaconda 2.7 설치를 마칩니다.  



CUDA Toolkit 설치 (GPU 만)

1. CUDA Toolkit Download  로 접속하셔서 Linux -> x86_64 -> Ubuntu -> 14.04 -> deb(local) 을 다운로드 받습니다. CUDA Tookit 7.5 를 다운로드 받으셔야 합니다. 오래된 그래픽 카드를 가지고 계신 분은 CUDA Toolkit 7.5 와 호환이 되지 않을 수 있어요.

2. 터미널을 열고 다운로드 받으신 위치로 가셔서 다음을 입력해 주세요.

sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb  

.deb 확장자를 가진 Cuda toolkit을 debian package 관리 명령어인 dpkg 로 -i 라는 설치옵션을 주어서 설치하고 있습니다. Anaconda 2.7과는 다르게 ' / ' 영역에 설치가 이루어집니다.


sudo apt-get update

저장소를 한 번 refresh 해주시고요. 윈도우에서 f5 누르는 것과 같습니다.


sudo apt-get install cuda

CUDA 를 설치해 줍니다.


CUDA 는 컴퓨터가 GPU 연산을 수행할 수 있도록 중계해 주는 프로그램이에요.

3. 설치가 끝나면 이제 우분투가 어디서든지 CUDA를 이용하여 GPU 연산을 할 수 있도록 해 주어야 합니다. Anaconda 2.7 설치에서 했던 것처럼 CUDA의 위치를 환경변수에 등록시켜서 모두가 CUDA가 어디에 있는지 알려줍시다.


cd ~ 를 입력하여 홈 폴더로 이동합니다.

gedit .bashrc 를 입력합니다.

나타나는 메모장 맨 마지막에 아래의 두 줄을 입력하고 저장합니다.

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda


CUDNN 설치 (GPU 만)

GPU 연산을 가능하게 해주는 CUDA 에 부스터를 달아서 더 빠르게 해 봅시다.

1. CUDNN Download  에서 CUDNN v4.0 을 다운로드 받으세요. NVIDIA에 가입해야 하는 번거로움이 있습니다.

2. 다운로드 받으신 파일 위에 마우스 우클릭을 하여 '여기에 풀기'를 선택하시면, 압축이 풀립니다.

3. 불법으로 다운로드 받은 게임 설치할 때 흔히 크랙을 덮어 씌운다고도 많이 하는데요. 그거랑 같은 일을 해 주면 됩니다. CUDNN 압축을 풀면 CUDA라는 폴더가 생성이 됩니다.

4. sudo nautilus 를 입력하여 관리자 권한으로 탐색기를 띄웁니다. 여기에서 usr/local/cuda 로 이동하세요.

CUDA/include 안에 들어있는 파일은 usr/local/cuda/include 의 위치에 복사붙여넣기 합니다.

CUDA/lib64 안에 들어있는 모든 파일을 usr/local/cuda/lib64 의 위치에 복사 붙여넣기 합니다.

마지막으로 아래의 명령어를 꼭 입력해 줍니다.

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

Ubuntu 내의 모든 사용자가 CUDNN 부스터를 이용해도 좋다고 허가를 내리고 있습니다.



TensorFlow 설치 (CPU 만)

Anaconda 2.7 이 환경 변수에 잘 등록이 되어 있는 상태입니다. 따라서 터미널 아무데서나 아래의 명령어를 입력하면 TensorFlow가 Anaconda/Lib/site-packages 에 자동으로 추가 됩니다.


pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl


CPU 연산만 수행하고자 하는 경우에는 TensorFlow 설치가 간단하게 끝납니다.



TensorFlow 설치 (GPU 만)

요약 : TensorFlow Source를 다운로드 -> 다운로드 받은 TensorFlow Source를 컴파일 -> 컴파일 된 파일을 이용하여 TensorFlow Package만들기 -> Anaconda 2.7에 만들어진 TensorFlow package 설치하기


(Step 1) 컴파일러 준비하기

TensorFlow를 설치하려면 구글에서 만든 컴파일러가 필요합니다. Bazel 이라는 컴파일러인데요. 이를 우분투에 설치하고 환경변수에 등록 해 볼게요.

1. Bazel Compiler는 먼저 자바가 있어야만 설치가 됩니다. 다음과 같이 자바를 설치해 주세요.

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

2. Bazel 을 위해서는 다음의 압축 프로그램도 필요합니다. 설치해 주세요.

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip

3. 다음의 링크에서 Bazel 을 다운로드 받으세요. 저는 최신버젼인 bazel-0.2.2b-installer-linux-x86_64.sh 를 다운로드 받았습니다.

Bazel Download


4. Bazel 을 다운로드 받으신 폴더로 가서 다음을 입력하여 Bazel 을 설치해 주세요. 버젼이 다르다면 아래 파란색으로 표시한 곳도 해당 버젼의 파일명으로 바꾸어 주어야 합니다.

chmod +x bazel-0.2.2b-installer-linux-x86_64.sh ./bazel-0.2.2b-installer-linux-x86_64.sh --user


5. Bazel 을 환경 변수에 등록해 주세요. 먼저 홈폴더로 이동하셔서 gedit .bashrc 를 입력하고 열린 메모장 맨 끝에 다음을 입력하고 저장합니다.

export PATH="$PATH:$HOME/bin"


6. 터미널에 bazel version 이라고 입력해 보세요. 설치 및 환경 변수 등록이 성공적으로 이루어졌다면 설치된 bazel의 버젼이 잘 나타날 거에요.


(Step 2) TensorFlow 에 필요한 다른 라이브러리 설치하기

다음을 입력하여 라이브러리를 설치합니다.

sudo apt-get install python-numpy swig python-dev


(Step 3) TensorFlow Source 다운로드 받기

1. 다운로드 프로그램 Git 설치하기

sudo apt-get install git


2. TensorFlow Source 다운로드 받기

git clone --recurse-submodules https://github.com/tensorflow/tensorflow


3. TensorFlow 가 어떤 CUDA Toolik 과 CUDNN을 사용할지 설정하기

Tensorflow 라는 이름을 가진 폴더가 많습니다. 따라서 반드시 다음을 따라해 주세요. 현재 tensorflow라는 폴더가 홈 폴더에 하나 있을 거에요. 여기로 들어갈게요.

cd ~/tensorflow


이 위치를 Root of Tree 라고 부르겠습니다. 이제 Root of Tree 로 이동하라고 하면 위의 명령어를 입력해 주세요.


4. Root of Tree 위치로 이동하세요. 그리고 다음을 입력하여 Tensorflow를 설정하시면 됩니다. Do you wish to build TensorFlow with GPU support? 라는 질문에서만 y 를 눌러 주시고 나머지는 모두 default 값을 따라 주세요. 즉, 그냥 엔터를 연타하시면 됩니다.

./configure

이로서 다운로드 받으신 Source 가 어떤 CUDA 와 CUDNN을 사용할지 설정이 완료되었습니다.


(Step 4) TensorFlow Source Complie 하기

1. Root of Tree 로 이동해 주세요.

2. 다음을 입력하여 컴파일 합니다.

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

시간이 조금 많이 걸릴 거에요.


(Step 5) 설치용 TensorFlow Package 만들기

1. Root of Tree 로 이동해 주세요.

2. 다음을 입력하여 TensorFlow Package 를 만듭니다.

bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

3. TesorFlow Package 가 성공적으로 만들졌는지 확인해 봅니다. 파일탐색기에서 tmp -> tensorflow_pkg 로 갑니다. 만약 패키지 만들기가 실패했다면 tensorflow_pkg 라는 폴더 자체가 없을 거에요. 폴더 안에 다음과 같이 예쁜 Package가 들어있다면 성공 !!



(Step 6) Anaconda 2.7 에 TensorFlow package 설치하기

1. 앞에서 우리는 Anaconda 2.7 을 환경 변수에 등록하였기 때문에 이제 사용할 pip 명령어는 우분투 자체의 python 의 pip이 아닌 Anaconda 2.7의 pip 이 됩니다.

2. 낯익은 다음의 명령어를 입력하여 TensorFlow을 Anaconda 2.7에 설치해 주세요.

pip install /tmp/tensorflow_pkg/tensorflow-0.8.0-py2-none-linux_x86_64.whl


수고 많으셨습니다. GPU연산을 위한 TensorFlow 설치가 모두 끝났습니다.


(Step 7) TensorFlow 가 Anaconda 2.7에 제대로 설치 되었는지 알아보기

1. 터미널을 열고 python 이라고 입력하여 Anaconda 2.7 을 실행시켜 주세요.

2. 다음을 차례로 입력하여 오류가 뜨지 않는지 확인해 주세요.

import matplotlib

import tensorflow as tf

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)

3. 다음의 결과창을 보실 수 있을 거에요.




Pycharm 설치 (CPU, GPU 공통)

1. Pycharm Download  여기에서 Pycharm Community 를 다운로드 받습니다. 이건 무료입니다.

2. pycharm을 다운로드 받은 폴더로 이동합니다.

3. bin 폴더로 이동합니다.

4. bash pycharm.sh 를 입력하여 pycharm을 설치 및 실행시켜 줍니다.



Pycharm에서 Anaconda 2.7 이용할 수 있도록 Setting (CPU 만)

1. File -> Settings -> Project Interpreter 에서 anaconda2/bin/python을 선택합니다.



Pycharm에서 Anaconda 2.7 이용할 수 있도록 Setting (GPU 만)

1. 환경 변수에 등록되어 있는 CUDA, CUDNN을 이용할 수 있도록 먼저 터미널을 열고 pycharm/bin 폴더로 이동합니다.

2. bash pycharm.sh 를 입력하여 pycharm을 실행시켜 주세요. 이 때 pycharm사용이 끝나실 때까지 해당 터미널을 닫으시면 안돼요.

3. File -> Settings -> Project Interpreter 에서 anaconda2/bin/python을 선택합니다.

4. 다음과 같이 pycharm에서도 잘 실행되는 것을 볼 수 있어요.

5. 다음 결과 창에 쓰인 파이썬 코드는 첨부 파일로 올려 놓았어요. Pycharm 에서 matplotlib와 GPU가 잘 작동하는지 확인해 보셔요.











맨위로

https://yeramee.tistory.com/1

신고하기