2022년 4월 24일
텐서플로 (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 가이드”