CentOS 7 에 TensorFlow 설치



처음 TensorFlow 를 접한지, 벌써 1년이 다 되어가네요. 그 당시만 해도 CentOS 에 TensorFlow 를 설치하기 위해서 소스코드를 다운받고, 바질을 설치하고 빌드하고 ,, 매우 복잡하고, 잘 되지도 않았습니다. 한걸음 한걸음 문제를 해쳐나가면, 새로운 문제가 또 생기고.. 그렇게 끝없는 여정이였지요.

Mac OS, CentOS, Windows 세 OS에 모두 TensforFlow 를 설치하는데, 일주일 넘게 소요되었던걸로 기억납니다. 그나마 윈도우는 CUDA 가 제대로 지원도 안되었었고요.



모쪼록 그렇게 잠시 딥러닝을 떠나 있다가, 이번에 다시 계기가 되어서 TensorFlow 를 설치해 보았습니다.





설치환경




CentOS 7.1 (64bit)

CPU 모드(GPU 미지원 모드)



이렇게 제한된 환경에 설치해 보았습니다. 사실 가상 서버에 설치하는거라 그래픽 카드가 CUDA 를 지원 안합니다. 그래서 CPU 모드의 TensorFlow 를 설치하였습니다. 하지만 GPU 모드라고 해도 크게 다를게 없습니다. 왜냐면 소스코드로 빌드할게 아니거든요. :)
미리 빌드된 whl 파일로 설치할 예정입니다.





설치하기



설치 방법에는 여러가지가 있습니다.


Virtualenv 라는 가상의 python 환경에 설치하는 방법.

순수하게 local 에 native pip 를 이용하여 설치하는 방법.

Docker 나 Anaconda 같은 Virtual 환경에 설치하는 방법.


저는 TensorFlow 에서 추천하는 virtualenv 를 이용한 설치를 하겠습니다. 개인적으로 docker 나 anaconda 는 경험도 없고요. :)


또한, 설치는 Source Code 가 아닌, 이미 빌드되어 있는 whl 을 이용해서 설치할 것입니다. 이 편이 정신건강에 이롭습니다.





Virtualenv 설치



이 섹션에서 할 설치내용을 간략히 설명드리자면, python-pip, python-devel, python-vertualenv 를 각각 설치하고 최신 버전으로 upgrade 할 예정입니다. 이후 virtualenv 를 통해서 tensorflow 를 위한 가상공간을 만듧니다. 완료 후에 .whl 을 통해서 tensorflow 를 설치할 것입니다.



먼저 python-pip, python-devel, python-virtualenv 를 설치해 줍니다.

sudo yum install python-pip python-devel.x86_64 python-virtualenv

이후 각각에 대해서 upgrade 를 해 줍니다. 이 부분을 수행하지 않으면, 추후에 tensorflow 설치시 버전관련 오류가 발생할 수 있습니다. :(


sudo pip install --upgrade pip
sudo pip install --upgrade setuptools
sudo pip install --upgrade virtualenv


이제 virtualenv 를 통해서 tensorflow 를 위한 가상공간을 만들고, 활성화 시킵니다.


virtualenv --system-site-packages ~/tensorflow
source ~/tensorflow/bin/activate

모든게 준비되었으므로, tensorflow 를 설치합니다.

// Python 2.7 인 경우

pip install --upgrade tensorflow


// Python 3.n 인 경우

pip3 install --upgrade tensorflow


// Python 2.7 인 경우(GPU 모드)

pip install --upgrade tensorflow-gpu


// Python 3.n 인 경우(GPU 모드)

pip3 install --upgrade tensorflow-gpu



여기서 설치가 안될 수도 있습니다. pip 버전이 8.1 이하면 tensorflow 를 찾지 못하고 설치가 안됩니다.

이 경우 아래와 같이 직접 url 를 입력해서 설치하면 됩니다.



Python 2.7 인 경우

pip install --upgrade TF_PYTHON_URL


Python 3.n 인 경우

pip3 install --upgrade TF_PYTHON_URL


TF_PYTHON_URL 는 각자의 상황에 맞게, 아래 페이지에서 URL 을 골라서 넣어주어야 합니다.

https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package



만약 Python 2.7 에서 CPU 버전을 설치할 경우에는 아래처럼 커맨드를 내리면 됩니다.

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


설치가 완료되면, 앞으로 tensorflow 를 사용하면서 자주 사용하게 될 python 관련 library 를 업데이트 해 줍니다.

지금 당장 할 필요는 없지만, 언젠간 하게 될겁니다. :) 그러니 미리 하는게 좋습니다.


pip install --upgrade numpy scipy wheel cryptography





참고사항




virtualenv 에 익숙하지 않은 분들을 위해서 말씀드리자면,

앞으로 Tensorflow 를 사용하려면, 해당 virtualenv 가 항상 활성화 되어 있어야 합니다.


아래 코드를 통해서 언제나 활성화 할 수 있음.


source ~/tensorflow/bin/activate


빠져나올때는

deactivate






설치 확인




이제 제대로 tensorflow 가 설치되었는지, Hello World 를 돌려봅시다.

python 실행 후, 아래 코드를 돌려 봅니다.


>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))

정상적으로 Hello, TensorFlow! 가 출력된다면, 제대로 설치된 것입니다.
다만, pre-built 된 TensorFlow 라서, 환경에 따라 실행시 이런 Warning 이 발생 할 수 있습니다만, 무시하셔도 될 것 같습니다.


2017-06-09 12:25:13.970517: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compi led to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.

2017-06-09 12:25:13.970561: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compi led to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.






딥러닝 관련된 프로젝트들은 논문을 바탕으로, 구현하는게 대부분이라......

앞으로 딥러닝 포스팅을 얼마나 하게 될 지는 잘 모르겠네요.


딥러닝 기본 원리는 다 비슷해서(Gradient Decent), CNN, RNN 등은 직접 찾아보시고 구현해 보시는게 좋을 것 같습니다. :)