TensorFlow 란 무엇인가?

Tensorflow 란 ?

Tensorflow 는 구글에서 만든 오픈 소스 라이브러리이다. 딥 러닝 라이브러리는 이외에도 많은 것이 있으나, 이 Tensorflow 를 사용하는 가장 큰 이유는 사람들의 관심을 많이 받고 있기 때문이다! 관심을 많이 받는다는 것은 그만큼 자료도 많다는 것을 의미하고, 혹시나 버그가 생기더라도 사람들로 인해 금방 리포트가 되어 수정이 된다는 장점이 있다.

Tensorflow 공식 홈페이지

Tensorflow 공식홈페이지에 따르면 Tensorflow 는 data flow graph 를 이용하여 수의 계산을 수행함에 있어 매우 높은 퍼포먼스를 해준다고 한다. 무엇보다 제일 매력 있는 점은 Google의 브레인 팀 인공지능 팀에 의해 개발되었다는 점이다. 얼마 전 Google IO 2018 에서 발표한 그들의 기술은 가히 혁신적이었으며, 나에게는 새로운 충격을 주었던 계기가 되었었다. 그러한 팀에 의해 개발된 라이브러리를 쓴다는 것이 얼마나 기쁜 일인지 모른다 :D

그렇다면 Data flow graph는 무엇일까 ? 사실 이번에 강의를 듣다가 처음 안 것이지만 graph 는 node와 그 node를 연결하는 edge 를 graph 라 한다고 한다. (처음 아직도 이 node는 nodejs를 제외하고는 나에게 익숙하지 않다)

TensorFlow 설치방법

설치방법은 간단하다.

1
2
$ pip install --upgrade tensorflow
$ pip install --upgrade tensorflow-gpu

pip는 파이썬 관련 패키지를 설치할 때 가장 많이 사용하는 툴이라고 생각하면 좋을 것 같다. 현재 필자는 python3 가 깔여 있어서 pip3 를 이용해서 설치했다.

이 과정에서 python3 의 버전 문제로 다음과 같은 문제에 직면했다.

1
2
3
4
5
6
$ pip3 install tensorflow

# Error in here
Collecting tensorflow
Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow

이러한 문제를 살펴보니 python3dmf 64bit 로 설치해야 하는데, 32bit 로 설치해서 이러한 문제가 생겼다. 혹시나 필자 같은 경우는 python3 를 재설치를 하였다. Python3 는 Mac 기준으로 application 에 있는 python3 를 삭제한 후, /Library/Frameworks/Python.framework/Versions/ 디렉토리에서 삭제를 원하는 해당 버전을 삭제 해주면 완료된다. 그렇게 삭제한 후 다시 terminal 을 열고 확인해보면 다음과 같은 문구와 함께 삭제되었음을 알 수 있다.

1
2
3
4
5
$ pip3 --version
zsh: command not found: pip3

$ python3 --version
zsh: command not found: python3

그 후, Python3 를 64 bit로 재설치 후, 다시 TensorFlow 설치를 시도했다.

1
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-1.0.0-py3-none-any.whl

/images/ai/img01.png

그렇게 되면 위와 같이 노출되며 설치가 완료된다. 제대로 설치되었는지 확인은 아래와 같이 하면 된다.

1
2
3
4
5
6
7
8
9
$ python3

python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

import tensorflow as tf
tf.__version__
'0.9.0'

출처

현재 이커머스회사에서 frontend 개발자로 업무를 진행하고 있는 Martin 입니다. 글을 읽으시고 궁금한 점은 댓글 혹은 메일(hoons0131@gmail.com)로 연락해주시면 빠른 회신 드리도록 하겠습니다. 이 외에도 네트워킹에 대해서는 언제나 환영입니다.:Martin(https://github.com/martinYounghoonKim
머신 러닝이란
Linear Regression 이란?