1. What is TensorFlow?

  • 텐서플로는 단순히 머신러닝에 관한 것이 아니라 수치 계산에 관한 것이다. 가령 미분을 하는데도 쓸 수 있음
  • 텐서플로가 작동하는 방식은 유향 비순환 그래프(directed acyclic graph)를 만드는 것과 같다.
    ※ 유향 비순환 그래프(directed acyclic graph, DAG, 유향 비사이클 그래프)란?

    위와 같은 순환그래프는 그래프에서 볼 수 있듯, A-> B-> C->A 의 싸이클이 발생해서 계속적으로 반복될 수 있는 상황이 발생가능

    하지만 DAG에서는 방향 순환이 없이 무한히 수많은 꼭짓점과 간선으로 구성되며 한 방향으로 나아감
    각각의 노드(node)는 덧셈,뺄셈, 곱셈 등의 간단한 연산부터, softmax 행렬곱 등의 복잡한 연산까지 수학적 연산을 나타냄
    각각의 노드를 연결하는 것은 edge라고 함
    edge는 수학적 연산의 input, output으로 데이터의 array를 나타냄

  • scalar : 3과 5같은 하나의 숫자
  • vector : 숫자들의 일차원 배열
  • maxtrix : 숫자들의 이차원 배열
  • 3D, 4D.... tensor : 숫자들의 3차원, 4차원 등등의 배열
  • tensor : 데이터의 n차원 배열(결국 텐서플로 안의 데이터가 tensor)

→ tensor(데이터)들이 directed acyclic graph를 따라 흘러가기 때문에 TensorFlow라 하는 것

 

2. Benefits of a Directed Graph

그렇다면 TensorFlow는 왜 DAG를 계산에 활용할까?
DAC는 모델의 코드에 사용한 언어와는 독립적이다. 때문에 파이썬으로 DAG를 만들어서 C++에서 구현할 수 있다.
이런 점을 이용해 high level language인 파이썬으로 프로그램을 작성해서 TensorFlow 실행엔진에 의해
작동되는 다른 플랫폼에서 실행할 수 있다.


클라우드에서 모델을 학습시킨 다음, 훈련시킨 모델을 스마트폰 등에서 예측 수행이 가능한 것이다.
(ex: 구글 번역기는 오프라인 상태에서도 예측 정도가 좀 떨어지더라도 학습된 모델로 작동이 가능하다.)

이런 장점으로 인해 텐서플로는 다양한 플랫폼에서 활용될 수 있다.

'구글 머신러닝 스터디잼(중급) > Introduction to TensorFlow' 카테고리의 다른 글

TensorFlow 실습 1  (0) 2019.10.28
Tensor and Variable  (0) 2019.10.25
Graph and Session  (0) 2019.10.25
TensorFlow API Hierarchy  (0) 2019.10.25
Introduction  (0) 2019.10.25

+ Recent posts