뉴비에욤

윈도우 10 텐서플로우 환경 구성 - 설치 본문

Machine Learning/Tensorflow

윈도우 10 텐서플로우 환경 구성 - 설치

초보에욤 2017. 7. 12. 01:33

Windows 10 x64 환경에서 아나콘다, 텐서플로우 설치


텐서플로우는 현재 C++, Python, 그리고 베타지만 Java를 지원한다. C++과 Java는 컴파일 과정이 필요하고 Python에 비하여 문법도 어려운편에 속하기 때문에 대부분 Python을 사용한다. 


Python은 공식 홈페이지에서 다운 받아 설치해도 되지만 텐서플로우를 이용한 환경 구성은 '아나콘다'라는 가상 환경 생성기를 이용하는 것이 훨씬 간편하고 안정적이다. 




아나콘다 설치


아래 사이트로 들어가서 Python 3.x 버전을 기반으로 하는 설치 파일을 받는다.

  • https://www.continuum.io/downloads#windows

2017.07.12 기준 Python 3.6 버전을 포함하는 아나콘다 설치 파일을 제공한다. 그런데 문제는 텐서플로우가 아직 Python 3.5까지만 지원하기 때문에 오류가 발생할 수 있다. 이 부분은 이후에 가상 환경을 생성함으로써 해결할 수 있으니 일단 64-BIT INSTALLER를 받아 설치하면 된다. 단, 설치 경로에 한글이나 공백이 들어가 있으면 제대로 동작하지 않으니 주의하기 바란다.


설치를 진행하다 보면 위 사진과 같이 추가 옵션을 선택할 수 있는데 기본적으로 하단의 옵션만 체크되어 있다. 첫 번째 옵션을 선택할 경우 명시된 것처럼 아나콘다 삭제나 재설치 과정에서 문제가 발생할 수 있기 때문에 체크하지 않는 것이 바람직 하다. 두 번째 옵션의 경우 본인의 환경에 이미 2.x. 버전의 Python이 설치 된 경우 환경이 꼬일 수 있기 때문에 환경에 맞게 선택하기 바란다.




아나콘다에서 텐서플로우용 가상환경 만들기


개발 환경을 호스트에 직접 구축하다 보면 버전 관리나 이것저것 패키지를 많이 설치하다 개발 환경이 제대로 꼬여 버리는 경우가 있다. 그래서 Python에서는 일종의 '가상 개발 환경'을 제공하는데 보통 'virtualenv'를 이용한다. 아나콘다에서는 이러한 가상 개발 환경을 'conda' 라는 명령어를 이용하여 생성할 수 있다.


1. 시작프로그램 -> Anaconda Prompt 실행


2. 텐서플로우를 위한 Python 3.5 기반 환경 생성

> conda create -n '환경이름' '환경 정보'

> conda create -n tf python=3.5


3. 패키지를 확인하고 'y'를 클릭하면 가상 환경 생성이 완료 된다.  


4. 생성한 가상 환경 활성화 및 접근

> activate '가상 환경 이름'

> activate tf

* 비활성화는 deactivate

* 단 비활성화 이후에는 일반 명령 프롬프트 환경으로 돌아가기 때문에 다시 Anaconda Prompt를 실행해야 한다.

* 아니면 Anaconda3\Scripts\activate.bat 입력해도 된다. (명령어가 길면 doskey를 이용하자)




아나콘다 가상환경에 텐서플로우 설치하기


텐서플로우는 CPU와 GPU 버전으로 나뉜다. 퍼포먼스 측면에서는 당연히 GPU 버전이 훨씬 더 빠르나 GPU를 추가 구매해야 하기 때문에 비용적인 문제가 발생한다. 이번 포스팅에서는 CPU 버전을 설치할 것이다.


1. CPU 버전 설치

> pip install tensorflow


2. GPU 버전 설치

> pip install tensorflow-gpu

텐서플로우 자체는 NVIDIA와 AMD 모두 지원한다. 그러나 대부분의 딥러닝 라이브러리가 CUDA를 기반으로 하기 때문에 NVIDIA 그래픽을 사용하는 것이 바람직 하다.


3. 간단한 테스트

> python

>>> import tensorflow as tf

>>> hi = tf.constant("Hello, Tensorflow!")

>>> sess = tf.Session()

>>> print (sess.run(hi))

b'Hello, Tensorflow!'   <- 이렇게 출력되야 제대로 동작하는 것이다.

실제 동작 결과를 보면 위 사진에서 하이라이트 된 것처럼 경고가 발생하는데 이는 텐서플로우를 직접 소스를 빌드하고 컴파일하여 설치하지 않고 가상환경+pip을 통해 설치하였기 때문에 최적화가 되지 않은 상태라서 속도가 다소 떨어질 수 있다는 뜻이다. 직접 컴팡리 하여 설치하면 속도가 향상 되긴 하나 크게 체감할 정도는 아니다. ( 속도에 민감하면 그냥 GPU를 이용하는게 훨씬 편하다 )


4. 실제 예제 테스트

다들 들어봤겠지만 딥러닝의 유명한 예제 중 하나가 바로 손글씨를 인식하는 MNIST라는게 있다. 텐서플로우는 기본적인 예제들을 포함하기 때문에 간단한 명령어로 실제 딥러닝을 테스트해 볼 수 있다. 이를 위해 다음의 명령어로 텐서플로우 설치 위치를 확인한다.

> python -c "import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))"


위 명령어 결과에서 "\examples\tutorials\mnist" 경로에 가면 다음과 같은 다양한 예제 파일이 있다.


여기서 mnist_deep 예제를 실행할 것인데 문제는 딥러닝 학습 횟수가 기본으로 20000으로 되어 있기 때문에 CPU 텐서플로우에서는 너무 시간이 오래 걸린다. 예제 파일인만큼 정확도 자체가 꽤 높게 낮오는 데이터를 학습 데이터로 사용하기 때문에 다음과 같이 학습 횟수를 좀 줄여서 사용할 것이다.


다음의 명령어로 학습 횟수가 수정(mnist_deep_step_1500.py 파일로 새로 저장) 된 예제를 실행한다.

> python -m tensorflow.examples.tutorials.mnist.mnist_deep_step_1500

이전에 설명한 것처럼 하이라이트 된 경고는 무시해도 된다. 학습 정확도를 보면 0.96 ==> 96% 정도로 굉장히 높은 결과를 보이고 있다.





Comments