Tensorflow Window 버전이 드디어 나왔습니다! (물론 이미 작년 얘기이지만...거의 나오자 마자 깔았으므로 ㅎㅎ) 2016년 11월 29일에 tensorflow 0.12.0-rc0 버전이 릴리즈되면서 Ubuntu에서만 가능하던 GPU 버전이 설치가 가능해졌습니다. 그 이후에 벌써 update가 여러번 진행되어서 현재 (2017.2.10일) 기준
1.00.rc2 버전이 나와있습니다. 그럼 간단히 설치방법부터 동작 확인하는 것까지 정리해보겠습니다.
그림 1 TensorFlow Window버전 출시 관련 release note
설치방법
Prerequisites
- CUDA 8.0.44 -win 10 설치
- CuDNN 5.1 설치
본격적으로 TensorFlow를 설치하기 전에 먼저 설치를 해줘야할 패키지들이 있습니다. 그림 1 TensorFlow Window버전 출시 관련 release note에서도 보실 수 있듯이 Tensorflow 0.12.0 RC0 버전부터는 GPU acceleration을 위해 CUDA 8.0과 cuDNN 5.1(NVIDIA에서 제공하는 Deep learning을 위한 추가 라이브러리 package)을 권장하고 있습니다.
CUDA 8.0은 Network 버전보다 local 버전으로 1.2기가 정도의 파일을 직접 받아 설치하는 것이 훨씬 빠릅니다.
링크:
https://developer.nvidia.com/cuda-downloads
CuDNN은 NVIDIA에서 회원가입을 하고 다운을 받으시면 됩니다. 다운받고 나면 그냥 압축 파일인데 이를 풀어서 CUDA 설치 경로에 붙여넣어 덮어씌워주시면 됩니다.
링크:
https://developer.nvidia.com/cudnn
CUDA 설치경로:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
Anaconda Installation
위의 패키지들을 모두 설치하였다면 본격적으로 TensorFlow를 설치할 준비가 된 것입니다. Anaconda를 이용하여 설치를 진행하도록하겠습니다. Anaconda는 Python distribution으로 여러 유용한 패키지들을 포함하고 있습니다. 가상환경을 만들 수도 있는데 이를 통해 Python 버전 간의 충돌을 막을 수도 있고 매우 편리합니다. Python이 아직 깔려있지 않은 분도 Anaconda를 깔면 자동으로 path 정리 등이 되므로 그냥 Anaconda를 깔아서 사용합시다.
사실 Tensorflow.org에서
설치 가이드를 확인하시면 Anaconda installation이란 part가 있고 앞부분은 이를 따라하시기만하면 됩니다만...이 글은 무작정 따라하기 방식으로 포스팅하기로 했으므로 한글로 다시 정리해드리겠습니다.
먼저 크게 다음과 같은 흐름으로 설치가 진행됩니다.
- Anaconda 설치
- Conda 가상환경 설정
- 가상환경을 activate하고 TensorFlow를 설치
- 앞으로 TensorFlow 실행하기 전에 가상환경을 먼저 activate
- 가상환경에 ipython(jupyter notebook) 등의 부가적 package 설치
1번부터 차근차근 해보겠습니다. Anaconda에도 Python 버전에 따라 두 가지 버전이 있는데 일단
설치링크를 따라가서 Python 3.5 버전을 설치합니다.
* 아직까지는
TensorFlow가 Window에서는 Python 3.5만 지원하기 때문에 Anaconda가 업그레이드 된 경우
아카이브로 들어가셔서 Anaconda3-4.2.0-Windows-x86_64 버전을 받아 깔아주시면 됩니다 (20170206 기준 Anaconda가 Python 3.6으로 업그레이드 되었네요).
2번의 가상환경이 무엇인지는
cs231n 수업 환경설정에 관한 글 중간(3번)에 설명이 되어있습니다. 저는 TensorFlow Python 3.5 버전을 설치를 할 것이기 때문에 tensorflow35라는 이름으로 가상환경을 만들어주었습니다.
conda create -n tensorflow35 python=3.5 anaconda
앞으로는 tensorflow를 사용할 때마다 cmd 창을 열어서
activate tensorflow35
deactivate tensorflow35
라고 명령어를 실행해주시면 가상환경에 접속(activate)하거나 나올 수(deactivate) 있습니다.
그럼 이제 이 가상환경을 활성화한 후 이 위에 TensorFlow-GPU 버전을 설치해보겠습니다. conda를 이용하면 이 역시도 매우 편하게 설치가 가능합니다.
conda install tensorflow-gpu
*현재 Anaconda version이 업그레이드 되면서 conda로 install할 경우 package가 없다는 오류가 뜨는 경우가 발생하는 것 같습니다. 그런 경우 pip을 사용하여 깔아줍시다.
pip install tensorflow-gpu
이후에 새로운 버전이 나오면 업데이트해주는 것 역시도 매우 간단합니다. (아래 예시는 2017.02.10 기준 가장 최신인 1.0.0.rc2 업데이트입니다.)
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.0.0rc2-cp35-cp35m-win_amd64.whl
현재 자신의 TensorFlow 버전을 알고 싶다면 TensorFlow를 설치해준 가상환경으로 들어가서
pip freeze
라고 하면 설치된 프로그램들의 버전이 모두 나옵니다. 이 방법 외에도 cmd에서 python을 실행한 후 import tensorflow as tf; print(tf.__version__)이라고 실행하면 자신의 현재 버전을 바로 알 수 있습니다.
설치 확인
이제 설치가 완료되었으면, TensorFlow가 잘 동작하는지 확인할 필요가 있겠죠? cmd창에서 python을 실행시킨 후에,
python
아래와 같이 script를 실행해 봅니다. 정상적으로 설치가 완료되었다면 다음과 같이 결과가 나올 것입니다.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
* (string 앞에 b가 찍히는 이유) Hello, TensorFlow 앞에 'b'가 붙는 것은 는 python 버전 때문인 것 같습니다. 리눅스 python 2.x 버전에서는 그렇지 않다고 하네요.
이로써 TensorFlow GPU 버전 윈도우 설치가 완료되었습니다. 모두 즐거운 코딩되시길 ㅎㅎ 다음 번에는 jupyter notebook과 window IDE에서 python code를 돌리는 것에 대해 글을 작성해보겠습니다.
다음 읽을거리