TensorFlow (텐서플로우)를 설치해보면 구글이 신경을 많이 썼다는 것을 알 수 있다. 다른 ML 플랫폼들을 설치하다보면 홈페이지에 있는대로 잘 되지 않는 경우가 많다. 수많은 사람들이 사용하는 상용SW가 아니라 연구용으로, 오픈소스로 무료로 만들어진 것이다 보니 그럴수도 있겠다 생각하면서도, 시작도 하기 전에 설치에서 주저 앉는 경우가 많다. 그러나 TensorFlow는 매우 설치가 쉽다!!

  우선 이런 저런 설정이 귀찮고 모르겠고 하면 Docker(도커)를 통해 설치하는 것을 고려해보자. TensorFlow는 감사하게도 Docker Container를 제공한다. 물론 이전에 Docker를 설치해놓아야 하지만 Docker만 있다면 한방에 설치가 가능하다.


실행프로그램만 설치할 경우

$ docker run -it b.gcr.io/tensorflow/tensorflow

Source code도 같이 설치할 경우

$ docker run -it b.gcr.io/tensorflow/tensorflow-full


  소스코드를 참고할 일이 종종있을 수 있으니 full version 설치를 하면 좋겠다. 그런데 주의할 게 있는데 docker image는 cpu 모드만 가능하다는 것이다. Docker의 한계가 아니라 이미지에 CUDA가 설치 되어 있지 않기 때문인데... 아마도 license 문제이지 않을까 짐작해본다. 이미지 받고 여기에 CUDA toolkit을 설치해도 된다. 좀 귀찮지만...

  Docker가 익숙하지 않다면 pip 설치도 가능하다. 참고로 현재 python 2.7 에만 설치 가능하다. 3.0에도 설치할 수 있도록 작업중이라고 한다. 이는 기존에 ML lib 들이 2.7 기준으로 작성된 것들이 많아서 이를 사용하다보니 생긴 문제인듯 하다. 


  다음과 같이 pip를 설치해주자. Pip가 이미 설치되어 있다면 다음으로 넘어가자.

# Ubuntu/Linux 64-bit

$ sudo apt-get install python-pip python-dev


# Mac OS X

$ sudo easy_install pip


  아래와 같이 명령어 하나로 바로 설치 가능하다. 맥북을 사용하는 많은 개발자들이 아쉬워하겠지만 맥에서는 GPU 가속을 하기 어렵다. 이는 Cuda를 사용하려면 nvidia의 그래픽 카드를 사용해야 하는 것과 연관이 있을 것같다. 맥은 대부분 intel iris 나 AMD radeon 그래픽을 사용한다. 그러나 CPU 모드도 수십~수백배 느릴뿐이므로 작은 예제로 개발하는데는 지장이 없다. 쫄지 말고 설치하고 개발하자. 개발된 코드로 큰 데이터를 학습하는 건 서버에서 하면 된다. 만약 서버가 없다면 PC에 GTX 그래픽 카드 하나 꼽아놓고 돌리면 된다.

# Ubuntu/Linux 64-bit, CPU only:

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl


# Ubuntu/Linux 64-bit, GPU enabled:

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl


# Mac OS X, CPU only:

$ sudo easy_install --upgrade six

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

  여기서 주의할게 있는데 맥의 경우엔 six의 버젼을 업그레이드 해줘야 한다는 것이다. 아니면 아래와 같은 에러를 만날수 있다. TensorFlow 는 protobuf를 사용하는데, 이게 six-1.10.0를 사용한다. 그런데 애플의 기본 python에는 six-1.4.1가 설치되어 있기 때문이다. 구글 잘못이라기 보다, 기본 설치된 버젼이 낮아서 그런것이다.

>>> import tensorflow as tf

ImportError: No module named copyreg

  그리고 아래와 같은 에러가 발생하면 protobuf 자체를 업그레이드 하면 되니 쫄지 말자. 아래와 같이 pip로 쉽게 업그레이드 가능하다.

$ pip install --upgrade protobuf

>>> import tensorflow as tf

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line 4, in <module>

    from tensorflow.python import *

  File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 13, in <module>

    from tensorflow.core.framework.graph_pb2 import *

...

  File "/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 22, in <module>

    serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto\x12\ntensorflow\"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02 \x03(\x0b\x32 .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')

TypeError: __init__() got an unexpected keyword argument 'syntax' 


'Deep Learning > TensorFlow' 카테고리의 다른 글

TensorBoard: Visualizing Learning  (0) 2015.12.17
[TensorFlow tutorial] Convolutional Neural Networks  (0) 2015.12.17
TensorFlow 101 - part2  (0) 2015.12.14
TensorFlow 101 - part1  (0) 2015.12.11
TensorFlow Variables 사용법  (0) 2015.12.07
TensorFlow 설치  (0) 2015.12.07
Posted by 21세기 유목민

댓글을 달아 주세요