윈도우즈에 아나콘다, 텐서플로 설치하기


윈도우즈에 아나콘다와 텐서플로우 설치과정을 정리하였다.

1. 아나콘다


구글에서 만든 Tensorflow 딥러닝을 하기 위해서 가장 많이 사용되는 패키지 하나이다.
Tensorflow 사용하기 위해서는 Python 설치해야 된다. 공식 사이트를 이용해서 설치하고 필요에 따라 여러 패키지를 따로 설치할 수도 있지만 머신러닝에 자주 사용되는 패키지들을 모아 놓은 Python 배포판 아나콘다(Anaconda) 설치하면 여러 가지 도구를 번에 설치해서 편리하게 사용 가능하다.

<파이썬과 아나콘다 환경 비교, 출처 링크>

1.1 아나콘다 설치

2018년 12월 기준 아나콘다 다운로드 페이지에 접속하면 윈도우즈용 Anaconda 5.3.1 버전이 존재한다. 아나콘다 5.3 버전부터는 파이썬 3.7 버전을 사용하도록 바뀌었는데 텐서플로는 파이썬 3.7 버전의 패키지를 제공하지 않기 때문에 파이썬 3.6을 사용하는 아나콘다 5.2 버전을 아래 링크에서 다운받아 설치한다. 
* ps1. 텐서플로 바이너리는 64비트용이므로 컴퓨터의 비트 확인이 필요하다. 컴퓨터가 32비트라면 텐서플로 소스를 직접 컴파일하여 설치해야 한다고 한다.
* ps2. 사용하는 윈도우즈 컴퓨터가 32비트인지 64비트인지 확인은
파일 탐색기에서 "컴퓨터" 선택 후 우클릭 -> 팝업 창에서 속성 클릭 ->
제어판>모든 제어판 항목>시스템 창에서 시스템 항목의 시스템 종류 확인



ps3. TensorFlow 1.6버전부터 CPU 버전 바이너리는 AVX(고급 벡터 확장) 명령을 지원하도록 컴파일 되었기 때문에 CPU AVX 명령을 지원하는지 확인해야 한다. 아래 링크에 가면 제조사 별로 사용 가능한 프로세서를 확인할 수 있다.
참고로 Intel 제품 중 하단에 보면 Core i3/i5/i7 도 가능하다고 나온다. 혹시 링크에 제품 이름이 없다면 프로세서 이름으로 검색해서 프로세서 상세 스펙 중 AVX를 검색하면 확인 가능하다

인텔의 프로세서 유틸리티를 사용할 수 도 있다. 설치 후 실행하면 3가지 탭이 나오는데
그 중 CPU 기술 탭에 Inter(R) Advanced Vector Extensions 라는 항목이 체크되어 있다면 
AVX 명령을 지원하는 CPU 이다. 
이제 AVX를 지원하는 64비트 컴퓨터가 준비되었다고 가정하고 아나콘다의 파이썬 3.6 버전 64비트 인스톨러를 다운받아 next 버튼을 눌러 설치를 완료한다.

1.2 콘다 및 파이썬 패키지 업데이트

이 후 작업은 Anaconda Prompt에서 실행한다.

Anaconda Prompt 실행 방법은 시작 단추(윈도우 모양) 클릭 -> 모든 프로그램 클릭 -> Anaconda3 (64-bit) 클릭 -> Anaconda Prompt 클릭하면 아래와 같은 도스 창이 나온다.
앞으로 모든 명령어는 이 창에서 실행하면 된다.

conda 패키지 관리자를 사용할 수 있도록 conda 자체를 업데이트합니다.
conda update -n base conda

다음엔 설치된 파이썬 패키지를 모두 최신 버전으로 업데이트합니다.
conda update --all

2. 텐서플로

2.1 텐서플로 설치

2.1.1 가상 환경 구성
검색을 통해 알아본 이전 글 들은 tensorflow가 3.5까지 지원했을 때 기준으로 작성되어 아래처럼 3.5로 환경을 구성하는 부분이 있지만 2018년 12월 현재는 tensorflow가 3.6까지 지원해주므로 필요없으나 정리차원에서 기록한다.

* tensorflow 3.5까지 지원이거나 설치된 python 버전이 3.5인 경우 아래 2 줄 필요>
conda create -n cuda pip python=3.5 /*환경 만들기(python 3.5) -> y/n 나오면 y 누를것.*/
conda activate cuda   /*환경 활성화*/
 (cuda 환경을 지정한 이름으로 원하는 대로 변경해도 된다.)

2.1.2 tensorflow 설치
아나콘다에서 tensorflow 설치하는 명령어는 2가지 이다.

1) pip 이용 설치
아나콘다 배포판에는 텐서플로 최신 버전이 늦게 포함되므로 파이썬 기본 패키지 관리자인 pip로 텐서플로를 설치한다. 

pip install tensorflow

2) conda 이용 설치
텐서플로 1.9.0 버전부터는 콘다를 사용하여 텐서플로를 설치하는 것이 권장된다고 한다. MKL-DNN 라이브러리에 최적화되어 있어서 CPU만을 사용하는 경우 보다 나은 성능을 기대할 수 있기 때문이다. 그래서 나는 conda를 이용해서 설치했다.
conda install tensorflow

위의 내용은 CPU 버전 기준으로 정리하였다. GPU 버전은 일정 성능 이상의 NVIDIA 사의 그래픽 카드가 있을 경우 가능하다. GPU 버전 설치하는 경우 먼저 NVIDIA 사이트에서 CUDA Toolkit과 cuDNN(회원 가입 필수)을 설치해야 한다. 관련 내용은 다음에 정리하였다. 
Tensorflow GPU 버전 설치

설치가 완료된 후 IPython 쉘을 실행하여 tensorflow 모듈을 임포트해서 아무런 메세지가 뜨지 않으면 정상적으로 설치에 성공한 것이다. 텐서플로를 임포트할 때 h5py 패키지에서 경고문구가 뜰 수 있는데 이는 h5py 패키지의 버그로 향후 버전에서 개선될 예정이므로 무시해도 된다고 한다. 

In [1]: import tensorflow as tf
In [2]: sd = tf.Session()
2018-12-21 15:54:23.037664: I tensorflow/core/platform/cpu_feature_guard.cc:141]
 Your CPU supports instructions that this TensorFlow binary was not compiled to

use: AVX AVX2

역시 한번에 에러 없이 종료될리가 없지..
import는 문제없이 됐는데 다음 줄에서 에러가 발생했다.

원인은 최신 CPU에서 신규 명령어를 지원하니 바젤이라는 빌드 시스템을 이용하여 빌드하여 사용하기 바란다는 의미다. 하지만 바젤은 리눅스 mac 전용이라서 window에서는 빌드하기  힘들다.

그냥 해당 Warning 을 없애면 된다고 하는데 잘 안되네..
4. 해당 Warning 없애기(GPU도 없고, 빌드도 어려울 경우)
  원리 : TF 로그 레벨을 낮춤
  1) Run > Edit Configurations로 간다.

  2) Defaults > Python
  3) Environment Variables에 환경변수를 추가한다.
     key : TF_CPP_MIN_LOG_LEVEL
     value : 2
  4) 기존 run 환경을 없애고 다시 만들어서 실행한다.

   # 참고 (코드 레벨에서 없애기)
     import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
출처: http://effortmakesme.tistory.com/126 [노력이 나를 만든다.]


댓글

이 블로그의 인기 게시물

파이참에서 인터프리터 꼬인 경우 처리

경사소실 문제 해결

근무 시작시간과 근무시간 입력 받아 근무 종료시간 반환하는 함수