EXCELSIOR

[러닝 텐서플로]Chap01 - 텐서플로 란? 본문

DeepLearning/Learning TensorFlow

[러닝 텐서플로]Chap01 - 텐서플로 란?

Excelsior-JH 2018. 5. 31. 20:23

Chap01 - 개요

1.1 텐서플로 란?


텐서플로(TensorFlow)는 구글(Google)에서 만든, 딥러닝 프로그램을 쉽게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리다.

텐서플로 자체는 기본적으로 C++로 구현 되어 있으며, 아래의 그림과 같이 Python, Java, Go 등 다양한 언어를 지원한다. 하지만, 파이썬을 최우선으로 지원하며 대부분의 편한 기능들이 파이썬 라이브러리로만 구현되어 있어 Python에서 개발하는 것이 편하다.

출처: tensorflow.org

또한, 브라우저에서 실행가능한 시각화 도우인 텐서보드(TensorBoard)를 제공하여, 딥러닝 학습 과정을 추적하는데 유용하게 사용된다.


1.2 텐서플로의 의미

TensorFlow에서 Tensor(텐서)란 딥러닝에서 데이터를 표현하는 방식이라고 할 수 있다. 즉, 텐서는 행렬로 표현할 수 있는 2차원 형태의 배열을 높은 차원으로 확장한 다차원 배열이다. 예를 들어, 아래의 그림에서 볼 수 있듯이 회색조(grayscale) 이미지는 하나의 채널(channel)에 2차원 행렬(배열)로 나타낼 수 있다. 반면, RGB 이미지는 R(ed), G(reen), B(lue) 각 3개의 채널마다 2차원 행렬(배열)로 표현하는데, 이를 텐서(3차원의 값을 가지는 배열)로 표현할 수 있다.


TenorFlow에서 계산은 데이터 흐름 그래프(dataflow graph)로 이루어 진다. 즉, 텐서 형태의 데이터들이 딥러닝 모델을 구성하는 연산들의 그래프를 따라 흐르면서 연산이 일어난다.

따라서, 딥러닝에서 데이터를 의미하는 Tensor 와 DataFlow Graph를 따라 연산이 수행되는 형태(Flow)를 합쳐 TensorFlow 란 이름이 나오게 되었다.





1.3 텐서플로 추상화 및 사전 학습된 모델

텐서플로에서는 KerasTF-Slim 과 같은 추상화 라이브러리를 제공하여 저수준 텐서플로 라이브러리에 대해 손쉽게 고수준 접근이 가능하게 해준다. 이를 이용하여 간단하게 딥러닝 모델을 구현할 수 있다.

또한, 아래의 그림처럼 텐서플로는 사전에 학습된 모델들을 제공해준다. 이러한 모델을 사용자들이 단 몇줄의 코드로 구현할 수 있으며, 새롭게 학습을 할 필요 없이 바로 실무에 적용할 수 있고, 새로운 데이터에 맞게 모델을 조정할 수도 있다.




1.4 결론

텐서플로는 현재 가장 인기있는 딥러닝 라이브러리 중 하나이며, 텐서보드 및 Keras와 같은 추상화 라이브러리 그리고 사전에 학습된 모델들을 통해 사용자가 딥러닝을 사용하는데 편리하게 해준다.

Comments