[Machine Learning]Tensorflow란?

[Machine Learning]Tensorflow란?

  • 인공지능은 Python(파이썬)에 특화되어 있다. 즉 파이썬은 딥러닝을 다루기에 좋은 언어
    • 파이썬은 시행착오, 데이터 분석등과 같은것에 특화되어 있음
  • 그렇다고 다른 언어(ex 자바)와 같은거로 못 만든다는거는 아니다

텐서(Tensor)

  • Tensor = Multidimensional Arrays = Data
  • 딥러닝에서 텐서는 곧 다차원 배열로 나타내는 데이터
    • ex) RGB이미지는 삼차원 배열로 나타나는 텐서

플로(Flow)

  • 플로는 곧 데이터의 흐름을 의미
  • tensorflow에서 계산은 데이터 플로우 그래프(Dataflow graph)로 행해짐
  • 그래프의  각각 간선은 시스템을 따라 흘러가는 데이터(Tenosr)를 의미
  • 그래프는 각각 노드는 수식을 의미 
    • 그래프를 따라 데이터가 노드를 흘러가면서 계산을 수행

Tensorflow(텐서플로우)

  • 딥러닝 오픈소스 패키지
  • 실제 파이썬 개발자들도 텐서플로우를 이해하기 상당히 힘듬
  • 텐서플로우는 파이썬에서 돌아가는 것이 아니라 파이썬으로 텐서플로우를 구동함
    • 파이썬은 자바보다도 느린 언어라서 파이썬의 함수를 이용해서 머신러닝, 딥러닝같은 엄청난 자원을 쓰는 알고리즘을 돌리는 것은 바보같은 짓
    • 일부 데이터 분석 프로그램을 작성할 때에도 자바로 구동할 때 느려서 C, C++로 동일한 부분을 짜서, 서비스로 구현하는 경우도 종종 있는데 파이썬으로 딥러닝을 구동하는것 자체가 바보같은 짓
    • Tensorflow는 껍데기가 파이썬이고, 자체적인 프로그램(아마도 C/C++로 만들어졌을거같음)을 파이썬이 호출하는 방식



Tensorflow와 경쟁상대인 다른 프레임워크들

  • PyTorch(파이토치)
  • CNTK
  • 아파치 MXnet

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?