IT_AI_DeepLearning/TensorFlow

[펌] Windows 10 기반 Tensorflow 빌드 및 실행하기 / Windows 10에 tensorflow 설치하기

JJun ™ 2016. 12. 30. 03:21



 출처

 : https://www.facebook.com/notes/hyeon-gab-shin/windows-10-기반-tensorflow-빌드-및-실행하기/1264305280280854/

 : http://ejklike.github.io/2016/12/27/install-tensorflow-on-windows-10.html




Windows 10 Tensorflow 빌드 환경 준비


설치 환경

  • Windows 10 64bit 가상원도우 환경(Macbook VMware Fusion)

준비할 도구들

  • CMake : 크로스플랫폼 컴파일러, Tensorflow 소스 컴파일을 위한 도구 - CMake 3.7 최신 버전 다운로드 >> 다운로드 링크 : cmake-3.7.0-rc1-win64-x64.msi
  • SWIG : Tensorflow C++ 코어와 다른 언어들간의 쉬운 인터페이스를 위한 제너레이터 - swigwin 3.0.10 최신 버전 다운로드 >> SWIGwin 다운로드 링크 : swigwin-3.0.10.zip
  • Git : Git 버전 관리 도구 >> 64bit Git for Windows Setup 다운로드 링크 : Git-2.10.1-64-bit.exe
  • Anaconda : Python 및 관련 라이브러리를 포함한 Python통합 개발 환경 - Python 3.5버전 포함. >> Anaconda 4.2.0 for Windows 다운로드 링크 : Anaconda3-4.2.0-Windows-x86_64.exe
  • MS Visual Studio 2015

관련 도구 설치 및 환경 설정

1) 다운로드 받은 설치 파일을 모두 설치 한다. - CMake, Git, Anaconda, Visual Studio 2015 - CMake 설치 후 원도우 환경변수에 cmake.exe 파일 경로 Path 추가 ** 환경변수창 또는 명령창에서 set명령어로 등록 가능. set PATH=”%PATH;C:\Program Files\CMake\bin"
2) 작업디렉토리 생성, 작업할 위치에 디렉토리를 생성(C:\Workspace)
3) 작업디렉토리 다운로드한 swigwin을 압축 해제하여 준비한다.
C:\Workspace\swigwin-3.0.10
4) 작업디렉토리를 개발환경정보 추가를 위해 아래의 명령을 실행한다(명령어 실행창, cmd).
C:\Workspace> "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"

Tensorflow 소스 준비하기

1) 명령실행 창에서 작업디렉토리로 이동하여 git명령어로 Tensorflow 소스를 Clone한다.
C:\Workspace>git clone https://github.com/tensorflow/tenso...
최신 버전의 branch(r0.11)을 clone하려면 아래와 같이 한다.
C:\Workspace>git clone -b r0.11 https://github.com/tensorflow/tenso... 

Tensorflow 소스 빌드하기

소스 빌드 준비하기

1) VS2015 명령실행창(VS2015 x64 네이티브 도구 명령 프롬프트)을 실행한다. - Windows검색에서 “cmd”를 입력하여 “VS2015 x64 네이티브 도구 명령 프롬프트" 선택
2) 작업 디렉토리에서 tensorflow 의 cmake 폴더로 이동 후 build 폴더 생성
C:\Workspace>cd tensorflow\tensorflow\contrib\cmakeC:\Workspace\tensorflow\tensorflow\contrib\cmake>C:\Workspace\tensorflow\tensorflow\contrib\cmake>mkdir build
3) cmake로 빌드 파일 생성

C:\...\build> cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release ^More? -DSWIG_EXECUTABLE=C:\Workspace\swigwin-3.0.10\swig.exe ^More? -DPYTHON_EXECUTABLE=C:\Users\%USERNAME%\Anaconda3\python.exe ^More? -DPYTHON_LIBRARIES=C:\Users\%USERNAME%\Anaconda3\libs/python35.lib

cmake로 빌드 파일 생성
** 캡쳐화면 실행은 기존 빌드 중인 폴더가 있어 별도로 build_tmp에서 실행 후 캡쳐 하였음.

Tensorflow 예제 소스 빌드(튜토리얼 예제프로그램)

1) 튜토리얼 예제 빌드하기
C:\...\build> MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj

예제소스 빌드 진행 이미지#1
예제소스 빌드가 완료되었다. 빌드 중에 발생된 경고, 오류 개수를 표시하고 빌드 경과시간까지 표시한다. ** VM환경해서 작업을 해서 자리비우면 전원세이브가 들어가고해서 시간이 하루이상 걸렸다.

예제 빌드 완료
2) 튜토리얼 예제 프로그램 실행
빌드가 완료되면 C:\...\build\Release폴더에 예제 프로그램이 생성되어있다.
아래는 tf_tutorials_example_trainer.exe를 실행해 본다.
C:\...\build> Release\tf_tutorials_example_trainer.exe

빌드된 튜토리얼 예제프로그램 실행 화면

Tensorflow Python PIP 빌드 및 실행하기

1) Python PIP 빌드하기
Python PIP 를 빌드 하려면 아래의 명령으로 실행할 수 있다.
C:\...\build> MSBuild /p:Configuration=Release tf_python_build_pip_package.vcxproj

PIP 빌드 실행 및 빌드 완료 화면
PIP 빌드가 완료되면 C:\...\build>경로에서 tf_python\dist\폴더에 *.whl파일이 생성된다.
C:\Workspace\tensorflow\tensorflow\contrib\cmake\build\tf_python\dist\

Python PIP 파일 빌드 완료 *.whl파일 확인
2) Python PIP 빌드 확인 및 설치하기
먼저 pip명령어로 이전에 설치된 pip패키지를 확인 해본다.
C:\...\dist> pip list

pip 패키지 리스트 확인(Tensorflow pip 설치 전)
PIP 설치하기위해서 아래의 명령어를 실행하면 Python관련 의존 패키지 설치를 하고 Tensorflow pip 설치를 완료하게 된다.
C:\...\dist> pip install tensor flow-0.11.0rc0_cmake_experimental-py3-none-any.whl

Tensorflow pip 설치 완료
PIP 패키지가 정상적으로 설치 되었는지 다시한번 “pip list” 명령어로 확인하였다.

Tensorflow pip 설치 완료 패키지 리스트 확인
3) Python에서 Tensorflow 예제 프로그램 작성 및 실행하기
콘솔에서 Python을 실행하고 간단한 샘플코드를 작성하여 Tensorflow 실행을 확인 해 본다.

Tensorflow Python 예제코드 작성 및 실행 확인

참조 사이트









Windows 10에 tensorflow 설치하기



12월 중순 무렵 tensorflow에서 Windows를 공식 지원한다고 발표하였다. 이제 Docker와 같은 번거로운 설치법이 필요 없다. 
tensorflow 공식문서를 참고하여 Windows 10에 tensorflow 0.12버전를 설치해봤다. 매우 쉽다.

GPU 버전을 설치할까? CPU only 버전을 설치할까?

먼저, 본인 PC에 설치된 GPU가 tensorflow 사용 가능한 GPU인지 확인해야 한다. (GPU가 없다면 당연히 CPU only 버전…)
아래 두 가지 조건을 충족하면 GPU 버전의 tensorflow를 설치하여 사용할 수 있다. 그렇지 않다면 GPU 버전의 tensorflow는 무용지물.

  1. CUDA를 지원하는 GPU인가?
    • 여기에 접속하여 본인 PC에 설치된 GPU를 찾아보자.
    • 본인의 GPU가 목록에 있다면, 그 옆에 Compute Capability를 확인하고 2번으로 고고.
  2. NVidia Compute Capability 3.0 이상인가?
    • Tensorflow 공식문서에 의하면 CUDA를 지원하더라도 NVidia Compute Capability가 3.0 이하이면 tensorflow를 사용할 수 없다.

0. CUDA toolkit, cuDNN 설치 (GPU 버전을 설치하는 경우에 한함)

위에서 확인한 결과 CUDA 사용 가능하고 Compute Capability 3.0 이상인 GPU가 장착되어있다면 Cuda toolkit과 cuDNN을 설치하여
tensorflow 설치를 위한 준비를 하자. (CPU only 버전을 설치한다면 넘어가자.)

CUDA toolkit 8.0 설치

https://developer.nvidia.com/cuda-downloads에서 Windows용 8.0 버전을 다운로드하여 설치한다.
이 때, CUDA가 설치되는 경로를 잘 기억해둬야 cuDNN 설치가 편해진다.
나의 경우는 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 이었다.

cuDNN 5.1 설치

https://developer.nvidia.com/cudnn에서 cuDNN 5.1 버전을 다운로드한다. (CUDA와 달리 계정을 만들어야 한다.) 다운로드한 파일의 압축을 풀면 cuda라는 폴더가 있고, 이 안에 세 개의 폴더가 있다.

자, 이제 CUDA가 설치된 경로인 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0에 같은 이름의 세 폴더가 존재하는지 확인한다. 존재한다면 압축 해제했던 cuda 폴더 안의 세 폴더를 CUDA가 설치된 경로인 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0에 붙여넣어 기존 파일을 덮어쓴다.

이제 GPU 버전의 tensorflow를 위한 준비과정은 끝났다!

1. Anaconda 설치

https://www.continuum.io/downloads에서 선호하는 파이썬 버전의 설치파일을 다운받는다.

명령 프롬프트(cmd)에서 python을 입력했을 때 아래와 같이 나타나면 설치 성공이다. (아래는 python 3.5 기준 성공화면)

C:\> python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

선호하는 파이썬 버전이 없다면 Python 3를 다운받자. 이는 예외상황(예: Python 3에서 작동하지 않는 Python 2 전용 패키지를 사용)이 없다는 가정 하의 추천이다. 만약 파이썬 버전 선택에 대해 더 알아보고 싶다면 이 글을 읽어보자.

2. Tensorflow 설치

아래 명령어를 실행하여 Tensorflow를 설치한다.

# CPU only version
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.0-cp35-cp35m-win_amd64.whl
# GPU version
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0-cp35-cp35m-win_amd64.whl

만약 설치가 이미 되어있다는 문구와 함께 오류(나의 경우는 Found existing installation: setuptools 27.2.0. Cannot remove entries from nonexistent file c:\users\dmlab\anaconda3\lib\site-packages\easy-install.pth와 같았음)가 난다면, --ignore-installed 태그를 뒤에 붙여서 재시도해보자.

3. Tensorflow 테스트

설치가 완료되면 아래 코드를 실행해보자.

CPU only 버전

>>> import tensorflow as tf
>>> sess = tf.Session()
>>> a = tf.constant(3)
>>> b = tf.constant(2)
>>> sess.run(a+b)
5
>>> sess.run(tf.constant('hello world'))
b'hello world'

GPU 버전

GPU버전은 CPU only 버전에서의 import tensorflow as tf 부분이 실행될 때 CUDA library의 loading 여부 메시지가 출력된다.
모든 모듈을 성공적으로 불러오면 tensorflow가 제대로 설치된 것이다. 또한, Session을 실행할 때 GPU를 제대로 인식하는지 확인하자.

>>> import tensorflow as tf
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cublas64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cudnn64_5.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library cufft64_80.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library nvcuda.dll locally
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\dso_loader.cc:128] successfully opened CUDA library curand64_80.dll locally
>>> sess = tf.Session()
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 550 Ti
major: 2 minor: 1 memoryClockRate (GHz) 1.8
pciBusID 0000:01:00.0
Total memory: 1.00GiB
Free memory: 816.21MiB
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0:   Y
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:948] Ignoring visible gpu device (device: 0, name: GeForce GTX 550 Ti, pci bus id: 0000:01:00.0) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.0.

테스트 환경의 GPU는 GTX 550 Ti인데, Cuda compute capability가 2.1이기에 gpu 장치를 무시한다고 안내가 뜬다.
설마 했지만 역시나…






'IT_AI_DeepLearning > TensorFlow' 카테고리의 다른 글

[펌] 텐서플로우(TensorFlow) 시작하기  (0) 2017.03.21