X

텐서플로 (TensorFlow)

1. 텐서플로 (TensorFlow)의 개요

개념 머신러닝 모델의 제작, 빌드 및 배포를 위해 개발 도구, 라이브러리, 커뮤니티 리소스로 구성된 엔드 투 엔드 오픈소스 플랫폼
특징 직관적인 API Keras , Python, C++ API 이외 하위 호환성 지원
이중 모드 CPU , GPU 모드 별 ML 연산과 단순 작업 분할
TPU 텐서플로우 전용 최적화 칩셋 활용
  • 구글이 2011년에 개발을 시작하여 2015년에 오픈 소스로 공개하였고, Python 등 개발 언어를 통해 딥러닝과 기계학습 분야를 일반인들도 사용하기 쉽도록 다양한 기능 제공

 

2. 텐서플로 아키텍처 및 구성 요소

(1) 텐서플로 아키텍처

(2) 텐서플로의 구성 요소

항목 특징 기능
Tensor Int, String 등 동작 정의 일관된 유형(dtype)의 다차원 배열
Operation 임의 연산 수행 그래프 상 노드, 텐서를 받거나 반환
Node 입,출력 구성 수치연산, 데이터 입출력, 저장
Kernel 이중 모드 지원 CPU, GPU 별 연산 및 작성 수행
Training 매트릭스 구성 코어 텐서 플로, 텐서 분석보드 구성
Model versioning 모델 병렬화 모델 저장 및 관리, 시퀀싱
Deployment 서버, 에지 디바이스/웹 배포 언어 및 플랫폼 제약없이 배포
  • 사용자의 생산성 향상 위해 지속 개선중이며, 텐서플로 2.0에서 불필요 API 제거, API 일관성 향상(Unified RNNs, Unified Optimizers), 파이썬 런타임(runtime)과 즉시 실행(eager execution) 통합

 

3. 텐서플로 2.0의 변경사항

구분 변경사항 세부 변경사항
API 개선
측면
API 정리 – tf.app, tf.flags, tf.logging 삭제, absl-py 오픈 소스 권장
– tf.* 네임스페이스(namespace) 정리
즉시 실행 – tf.control_dependencies() 불필요
– 모든 코드는 라인 순서대로 실행
동작 구조
최적화 측면
전역 메커니즘 제거 – tf.Variable() 호출 시 기본 그래프에 노드(node) 추가
– 옵티마이저는 훈련 가능한 모든 변수의 그래디언트 계산
세션 대신 함수 – 함수 최적화(pruning, kernel fusion 등)
– 모듈화된 텐서플로 함수를 재사용하고 공유
  • 텐서플로 2.0 권장 사항으로 작은 함수로 코드 리팩토링, 케라스 층과 모델 사용하여 변수 관리 등을 통해 최적의 머신러닝 모델 제작, 빌드 및 배포

 

[참고]

  • Tensorflow.org, “TensorFlow 가이드”
Categories: 알고리즘/AI
도리: