TensorFlow는 여러 OS를 지원하며 Windows를 공식 지원합니다.


본인은 Windows 10에 설치하였으며,


공식 홈페이지의 설치 가이드를 참고하였습니다.



설치할 TensorFlow를 결정


CPU 혹은 GPU 지원 TensorFlow를 선택해야 합니다.

    • CPU support only. NVIDIA GPU가 없다거나 GPU가 없는 노트북 등의 경우에는 이 버젼으로 설치해야 합니다. 이 버젼이 설치하기 쉽다고 합니다(5~10분 정도 소요). 때문에 NVIDIA GPU가 있더라도 이 버젼으로 설치를 권장하고 있습니다.
    • GPU support. TensorFlow 프로그램은 일반적으로 CPU보다 GPU에서 더 빠르게 수행됩니다. 때문에 GPU 조건을 만족하고 성능이 중요한 프로그램을 실행해야할 경우는 이 버젼으로 설치해야 합니다.


GPU support 요구사항


GPU 지원 TensorFlow를 설치하는 경우 관련 NVIDIA 소프트웨어가 설치되어야 합니다.

    • CUDA® Toolkit 8.0. https://developer.nvidia.com/cuda-downloads에서 Windows 10 버젼으로 다운로드하여 설치하였습니다. local 설치 파일의 경우 용량이 꽤 됩니다(1.3GB). 본인의 Windows 버젼에 따라 다운로드하여 설치하시길 바랍니다. 설치 후 CUDA가 설치되는 경로를 알아둬야 합니다. cuDNN 설치시 필요하기 때문입니다. 본인의 경우는 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 입니다.
    • cuDNN v5.1. https://developer.nvidia.com/cudnn 에서 cuDNN v5.1 for Windows 10을 다운로드 하였습니다. NVIDIA 계정으로 로그인해야 다운 받을 수 있습니다. 계정 가입은 간단한 설문과 이메일 인증을 통해 이루어집니다. 다운로드 받은 파일의 압축을 풀면 cuda 라는 폴더가 있습니다. cuda 폴더 내부에는 bin, include, lib 폴더가 존재합니다. 이 세개의 폴더를 CUDA가 설치된 경로의 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 에 복사하여 덮어쓰면 됩니다.
    • GPU card가 CUDA Compute Capability 3.0 혹은 그 이상을 만족해야 합니다. https://developer.nvidia.com/cuda-gpus 여기서 리스트를 확인할 수 있습니다. 일반적으로 GeForce 제품을 사용하므로 관련 리스트를 확인하시면 됩니다. 본인의 GPU는 GTX 1050이며 Compute Capability 6.1이므로 요구사항에 만족하는 것을 알 수 있습니다.

상기 소프트웨어에 대해 이전 버젼이 설치된 경우는 지정된 버젼으로 업그레이드를 해야 합니다.



TensorFlow 설치 방법 결정


TensorFlow를 설치하는 매커니즘을 선택해야 합니다.

    • "native" pip
    • Anaconda

Native pip는 가상 환경을 이용하지 않고 시스템에 TensorFlow를 직접 설치합니다. Native pip를 설치하면 어떤 디렉토리에서도 TensorFlow 프로그램을 실행할 수 있습니다.


Anaconda는 가상 환경을 이용합니다. 

Anaconda는 Continuum Analytics라는 곳에서 만든 Python 배포판으로, 여러가지 패키지(수학, 과학 등)를 포함하고 있습니다. 가상 환경을 이용하기 때문에 다른 패키지끼리의 충돌이나 다른 버전으로 인한 충돌을 막아준다고 합니다.

NOTE: TensorFlow는 anaconda 패키지를 테스트하거나 유지 관리하지 않습니다. Anaconda에 의해 발생되는 문제 등은 책임질 수 없다는 의미 같습니다. 


많은 사용자들이 Windows 환경에서 anaconda를 이용하여 TensorFlow를 설치하는 것으로 보입니다. 본인은 native pip으로 설치를 진행하겠습니다.



native pip로 설치하기


Python 3.5.x 버전을 설치해야 합니다.

TensorFlow는 Windows 환경에서 오직 3.5.x 버젼의 python만을 지원합니다. 


TensorFlow를 설치하려면 터미널을 실행해야 합니다. 터미널에서 아래와 같은 명령을 실행해야 합니다. Python을 설치하실때 Add Pyhon 3.5 to PATH를 체크하셔야 터미널에서 pip3 명령을 수행할 수 있습니다. TensorFlow CPU 전용 버전을 설치하려면 아래와 같이 명령을 입력해야 합니다.

C:\> pip3 install --upgrade tensorflow

GPU 버젼을 설치하려면 아래와 같은 명령을 입력해야 합니다.

C:\> pip3 install --upgrade tensorflow-gpu

본인은 GPU 버젼으로 설치하였습니다.



TensorFlow가 성공적으로 설치되었다면 위와 같은 화면이 나와야 합니다.


설치확인


TensorFlow가 제대로 설치되었는지 유효성을 검사할 수 있습니다.


1. 터미널을 실행합니다.

2. Anaconda를 통해 설치한 경우 Anaconda 환경을 활성화합니다.

3. 터미널에서 Python을 실행합니다.

  1. C:> python 

4. Python shell에서 다음을 입력합니다.

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

Python 프로그램이 아래와 같은 output을 출력한다면 성공적으로 설치된 것입니다. 

Hello, TensorFlow!


아래와 같이 오류가 발생한다면 MSVCP140.DLL 파일이 없기 때문입니다.

    • No module named "_pywrap_tensorflow"

    • DLL load failed.

Visual C++ 2015 redistributable 을 설치해주셔야 합니다.




출처


'머신러닝 > TensorFlow' 카테고리의 다른 글

tf.contrib.learn  (0) 2017.03.08
tf.train API  (0) 2017.03.07
TensorFlow Core tutorial  (0) 2017.02.28
TensorFlow란?  (0) 2017.02.21

텐서플로(TensorFlow)는 구글 제품에 사용되는 머신러닝(기계학습)을 위한 오픈소스 소프트웨어 라이브러리 입니다. 구글 내 연구와 제품개발을 위한 목적으로 구글 브레인팀이 만들었고 2015년 11월 9일 아파치 2.0 오픈소스 라이센스로 공개되었습니다.


아파치 2.0 오픈소스 라이센스는 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이센스 규정을 의미합니다. 아파치 라이센스에 따르면 누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있으며 재배포시에는 원본 소스 코드 또는 수정한 소스 코드를 반드시 포함시켜야 하는 것은 아니고 아파치 라이센스 버전 2.0을 포함시켜야 하며 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확하게 밝혀야 합니다.


한 마디로 "출처만 밝히고 마음대로 이용하렴" 입니다. OpenCV(Open Source Computer Vision)를 자주 이용하는 입장으로서 BSD 라이센스가 생각나지 않을 수 없습니다. 아파치 2.0 오픈소스 라이센스와 BSD 라이센스가 내용적인 측면에서 어떠한 차이점을 가지고 있는지는 잘 모르겠습니다. 둘 다 같은 목적인 듯 합니다만.. 

BSD(Berkeley Software Distribution) 라이센스는 소프트웨어 라이센스라고도 할 수 없을 만큼 미약하여, 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있습니다. 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이센스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있습니다. 

LICENSE.TXT 및 README.txt 포함 의무가 있습니다. LICENSE.txt는 BSD 라이센스의 대한 내용이며 README.txt는 OpenCV 홈페이지 및 관련 게시판 주소 링크 등 기본적인 정보입니다. 이러한 제약없는 제약(?) 때문에 많은 산업 현장에서 OpenCV가 사용되고 있는 것으로 알고 있습니다. 


같은 이유로 텐서플로는 많은 산업 현장에 사용될 것으로 예상됩니다. 이미 많이 사용하고 있을지도 모르겠습니다. 구글은 머신러닝 라이브러리인 텐서플로를 거의 제약이 없는 라이센스로 배포함으로써 머신러닝의 거대한 인프라를 구축할 수 있을 것입니다. 표면적으로는 기술의 발전과 정보의 공유의 목적이 있겠지만 거대한 인프라 구축을 통한 머신러닝 시장 점유율 확보에 대한 느낌을 지울 수는 없습니다. 이 부분이 옳지 못한 것은 아닙니다. 구글의 앞선 기술력과 발빠른 전략이라고 생각합니다.


텐서플로는 안드로이드와 iOS와 같은 모바일 환경은 물론 64비트 리눅스, MacOS의 데스크탑이나 서버 시스템의 여러개의 CPU와 GPU에서 구동될 수 있습니다.


  • 데이터 플로우 그래프

데이터 플로우 그래프는 수학 계산과 데이터의 흐름을 노드(Node)와 엣지(Edge)를 사용한 방향 그래프(Directed Graph)로 표현합니다.

노드는 수학적 계산, 데이터 입/출력, 그리고 데이터의 읽기/저장 등의 작업을 수행합니다. 엣지는 노드들 간 데이터의 입출력 관계를 나타냅니다. 엣지는 동적 사이즈의 다차원 데이터 배열(=텐서)을 실어나르는데, 여기에서 텐서플로우라는 이름이 지어졌습니다.


  • 특징

- 데이터 플로우 그래프를 통한 풍부한 표현력

- 코드 수정 없이 CPU/GPU 모드로 동작

- 아이디어 테스트에서 서비스 단계까지 이용 가능

- 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리

- Python/C++를 지원하며, SWIG를 통해 다양한 언어 지원 가능

SWIG(Simplified Wrapper and Interface Generator)는 c나 c++로 작성된 컴퓨터 프로그램이나 라이브러리들을 다른 언어들과 연결하는데 사용하는 오픈 소스 소프트웨어 도구이다.



출처


'머신러닝 > TensorFlow' 카테고리의 다른 글

tf.contrib.learn  (0) 2017.03.08
tf.train API  (0) 2017.03.07
TensorFlow Core tutorial  (0) 2017.02.28
설치하기  (2) 2017.02.21

퍼오는 자료는


언제 비공개로 전환될지, 정보가 사라질지 알 수 없으므로


출처를 명시하되 재가공해서 게시한다.


책이나 오프라인 자료 역시 마찬가지이다.


본인의 창작물에 대해서는 


출처만 명시한다면 


정보공유를 위해 퍼가거나 자료를 가공하는 것 또한 가능하다.

'소개' 카테고리의 다른 글

망각의 동물(feat. 게으름)  (0) 2020.08.30
블로그 개설 목적  (1) 2017.02.20

+ Recent posts