본문 바로가기
예전글 아카이빙

[TensorFlow 2.0 딥러닝] 챕터01.텐서플로우 이해하기 : #02 플로우?Data Flow Graph Computation

by DoBeFree 2020. 6. 14.
반응형

챕터01. 텐서플로우 이해하기 

<목적>
이번 글에서는 텐서플로우가 어떻게 작동하는지 살펴보고, 왜 이런 별난? 구조를 갖게됐는지 신경망구조와 연결해보기위한 첫 단계로 텐서플로우와 텐서에 대해 살펴봅니다.

이전글에서 텐서플로우(TensorFlow)는 텐서(Tensor)와 "흐르다"의 영어표현인 플로우(Flow)를 합친뜻입니다. "텐서라는것이 흐른다" 라는 모습을 브랜딩화한 이름이라는 것을 설명했고 텐서에 대해 알아보았습니다. 

이번 글에서는 플로우(Flow)에 대해서 살펴보는 시간입니다.

(1). 플로우(FLOW) :  Data Flow Graph Computation 

텐서플로우는 효율적(efficient)이며 유연하며(flexible), 서비스에 바로 사용수 있고 실무적합한 (production-ready library) 철학을 갖고있습니다. 또한 딥러닝이라는 작업의 특성상 대용량의 데이터에 대한 많은 연산이 필요하기 때문에 병렬처리가 필수입니다. 이러한 철학과 작업 특성에 맞는 연산구조가 "데이터 플로우 그래프연산(Data Flow Graph Computation)" 입니다.  비단 텐서플로우뿐만 아니라 병렬처리가 필요한 대부분의 서비스에서 그래프연산(Graph Computation)을 사용합니다. 

 

1) 그래프 구조(Graph structure)와 Data Flow Graph 구조

텐서플로우의 Data Flow Graph Computation을 이해하기 위해서는 먼저 그래프 구조에 대해 이해해야 합니다.  그래프 구조란 그림처럼 노드( Node)와 엣지(Edge)로 구성된 구조를 말합니다. 

중에서 텐서플로우에서 사용하고 있는 Data Flow Graph 노드를 연결하는 엣지가 데이터를 노드는 데이터를 통해 수행하는 연산 역할을 하는 그래프 구조를 의미합니다.  

a = [1,2,3], b = [4,5,6] a + b 구하는 것을  Data Flow Graph 표현한다면 아래와 같습니다

단어는 어렵지만 Data Flow Graph Computation  데이터가 edge역할을 하여 node 흘러가는 그래프 구조를 갖으며 node 지정된 연산을 하는 연산방법으로 이해할 있습니다

2) 텐서플로우의 Data Flow Graph Computation 과 텐서 + 플로우

 텐서플로우의 경우 이름에서 있듯 텐서(Tensors) 기본 자료구조이기 때문에 텐서플로우의 
* 엣지(Edge) 텐서를 의미하며  엣지의 방향은 텐서의 흐름을 의미하고 
* 노드(Node) 곱하고, 나누는   텐서를 처리하는 연산을 말합니다

이렇게 텐서가(Data)  흐르는(Flow) 연산(Graph Computation)을 사용하기 때문에 텐서플로우 입니다.

In TensorFlow, a computation is described using the Data Flow Graph, where each node in the graph represents the instance of a mathematical operation (multiplyadddivide, and so on), and each edge is a multi-dimensional data set (tensors) on which the operations are performed
-텐서플로우 공식홈페이지 가이드 중

 

이번 글에서는 플로우의 의미인 Data Flow Graph Computation 에 대해서 살펴보았습니다. 이로서 텐서플로우가(TensorFlow)가 어떤 녀석인지 이해하였습니다. 다음 글에서는 텐서 + 플로우의 개념을 실제 코드로 살펴볼 예정입니다.

 

참고문헌

* 1) Getting Started with TensorFlow(2016), Giancarlo Zaccone, Packt
* 2) TensorFlow for Machine Intelligence(2016), Sam Abrahams; Troy Mott; Danijar Hafner; Erik Erwitt; Ariel Scarpinelli, Bleeding Edge Press
3) http://web.cecs.pdx.edu/~mperkows/temp/JULY/data-flow-graph.pdf
4) https://medium.com/ai%C2%B3-theory-practice-business/tensorflow-1-0-vs-2-0-part-1-computational-graphs-4bb6e31c1a0f

 

반응형

댓글