텐서플로

IT 위키

TensorFlow는 Google Brain 팀에서 개발한 오픈소스 머신러닝 및 딥러닝 프레임워크로, 수치 계산, 모델 학습, 추론, 배포까지 아우르는 종합적인 ML 플랫폼이다. 대규모 분산 학습, 모바일 및 엣지 배포, TPU 통합 등을 강점으로 하며, TensorFlow Extended(TFX), TensorFlow Lite, TensorFlow.js 등 폭넓은 생태계를 제공한다.

개요[편집 | 원본 편집]

TensorFlow는 2015년 처음 공개된 이후 산업계와 연구계에서 널리 사용되었다. 초기에는 정적 계산 그래프(static computation graph) 기반의 TensorFlow 1.x가 중심이었으나, 이후 2.x 버전에서 eager execution 중심의 직관적인 인터페이스를 도입했다.

TensorFlow는 다음과 같은 목적을 갖는다:

  • 대규모 ML 모델 학습 및 배포
  • GPU/TPU 가속 지원
  • 산업 환경에서의 안정적인 제품화
  • 다양한 언어 및 플랫폼 통합

특징[편집 | 원본 편집]

Keras 통합 API[편집 | 원본 편집]

TensorFlow 2.x에서는 Keras가 기본 고수준(high-level) API로 통합되었다.

  • 직관적인 레이어 기반 모델 구성
  • Functional/Sequential 모델 구조
  • 사용자 정의 레이어 및 모델 지원

Eager Execution[편집 | 원본 편집]

Python 코드처럼 즉시 실행되는 방식으로 전환되어 디버깅이 쉬워졌다.

그래프 변환 (tf.function)[편집 | 원본 편집]

`@tf.function` 데코레이터를 사용하면 Python 코드를 정적 그래프 형태로 컴파일하여 성능을 높일 수 있다.

TPU 및 XLA 지원[편집 | 원본 편집]

TensorFlow는 Google Cloud TPU와 깊게 통합되어 있다.

  • XLA(Accelerated Linear Algebra) 최적화 엔진 제공
  • TPU에서 높은 훈련 효율
  • 대규모 모델 병렬 학습 지원

분산 학습 전략[편집 | 원본 편집]

TensorFlow는 여러 분산 전략을 제공한다.

  • MirroredStrategy (단일 노드 multi-GPU)
  • MultiWorkerMirroredStrategy (다중 노드)
  • TPUStrategy
  • ParameterServerStrategy

TensorFlow Lite (TFLite)[편집 | 원본 편집]

모바일 및 엣지 디바이스용 경량 딥러닝 추론 엔진.

TensorFlow.js[편집 | 원본 편집]

브라우저 및 Node.js 환경에서 모델 실행 가능.

TensorFlow Extended (TFX)[편집 | 원본 편집]

ML 제품 파이프라인 구축을 위한 플랫폼:

  • 데이터 파이프라인
  • 모델 배포
  • 서빙 및 모니터링

내부 구조[편집 | 원본 편집]

컴퓨터 그래프[편집 | 원본 편집]

TensorFlow의 핵심은 연산(operation)과 텐서(tensor)로 구성된 계산 그래프이다. 2.x에서는 eager + 그래프 혼합 모델로 동작한다.

런타임 / 디바이스 배치[편집 | 원본 편집]

TensorFlow는 GPU/TPU/CPU 디바이스에 자동으로 연산을 배치하며, XLA 또는 CUDA/cuDNN/cuBLAS를 통해 가속한다.

SavedModel[편집 | 원본 편집]

모델을 저장·배포하기 위한 표준 포맷:

  • Graph + Weight + Signature 포함
  • TFLite, TF Serving, TF.js로 변환 가능

TensorFlow 1.x와 2.x 비교[편집 | 원본 편집]

항목 TensorFlow 1.x TensorFlow 2.x
실행 모델 정적 그래프 eager 우선 + 그래프 변환
고수준 API tf.layers, Estimators Keras 통합
학습 루프 session.run 필요 직관적인 Python 코드
TPU/XLA 초기부터 지원 더 자연스럽게 통합

PyTorch 및 JAX와의 비교[편집 | 원본 편집]

항목 TensorFlow PyTorch JAX
철학 산업/제품 중심 연구/실험 중심 함수형 + XLA 중심
TPU 지원 매우 좋음 제한적 최고 수준
GPU 생태계 매우 강함 최강 (CUDA 중심) 중간
코드 스타일 선언적 + Keras imperative (직관적) 함수형
배포/서빙 TFLite / TF Serving / TFX TorchServe / ONNX 제한적

활용 분야[편집 | 원본 편집]

  • 대규모 ML 모델 학습 (Vision, NLP, RL)
  • Google 내부 서비스(검색, 번역, 이미지 처리 등)
  • 모바일/엣지 AI (TensorFlow Lite)
  • 웹 기반 AI (TensorFlow.js)
  • 산업용 ML 파이프라인(TFX)
  • TPU 기반 연구 및 분산 학습

장점[편집 | 원본 편집]

  • TPU, XLA와 깊은 통합
  • 풍부한 배포/서빙 도구(TFX, TFLite)
  • 산업 제품화에 특화된 생태계
  • 그래프 기반 최적화로 높은 성능 가능
  • 다중 언어 및 플랫폼 지원

한계[편집 | 원본 편집]

  • PyTorch보다 직관성이 떨어진다는 의견 존재
  • 연구 커뮤니티에서 PyTorch보다 채택률 낮음
  • TF 1.x → 2.x 전환으로 혼란 있었음
  • 그래프/데코레이터 기반 디버깅 난이도

함께 보기[편집 | 원본 편집]

참고 문헌[편집 | 원본 편집]

  • TensorFlow 공식 문서
  • Google Research 블로그
  • XLA 및 TPU 기술 자료