Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

TensorFlow

TensorFlow는 서버, 브라우저, 휴대폰에서 모델을 학습하고 배포하기 위한 Google의 오픈소스 ML 프레임워크이며, Keras를 상위 수준 API로 제공합니다.

TensorFlow는 Google이 Apache 2.0 라이선스로 2015년 11월에 공개한 오픈 소스 머신러닝(ML) 프레임워크입니다. Google Brain 팀이 내부 연구와 제품을 위해 개발했습니다. 딥러닝 및 기타 수치 계산 프로그램은 다차원 숫자 배열인 텐서에 대한 연산으로 계산을 표현합니다. TensorFlow는 이러한 연산을 자동으로 미분하고 최적화된 그래프로 컴파일해 CPU, GPU, TPU에서 실행합니다. TensorFlow 생태계는 학습부터 모델 배포까지 전체 MLOps 과정을 지원합니다. 모델 정의를 위한 Keras, 실험 추적을 위한 TensorBoard, 프로덕션 모델 서빙을 위한 TensorFlow Serving, 브라우저용 TensorFlow.js, 그리고 엣지 AI를 실행하는 휴대전화와 임베디드 장치용 LiteRT(이전 TensorFlow Lite)가 포함됩니다. Google은 2026년 3월 TensorFlow 2.21을 발표하면서 향후 TensorFlow 개발은 보안 및 버그 수정, 종속성 업데이트, 커뮤니티 기여에 중점을 둘 것이라고 밝혔으며, 새로운 생성형 AI 프로젝트에는 Keras 3, JAX 또는 PyTorch를 권장했습니다.

TensorFlow 작동 방식#

TensorFlow 1.x에서는 사용자가 먼저 정적 계산 그래프를 구축한 뒤 세션에서 실행해야 했습니다. 2019년에 출시된 TensorFlow 2.0은 즉시 실행을 기본값으로 설정해 일반 Python 코드처럼 연산이 즉시 실행되도록 했으며, 그래프는 최적화 용도로 유지했습니다. tf.function 데코레이터가 적용된 함수는 입력 시그니처마다 한 번씩 추적되어 그래프로 변환됩니다. TensorFlow는 이 그래프를 최적화하고 XLA 컴파일러로 컴파일한 뒤 Python 없이 배포할 수 있도록 SavedModel 형식으로 저장합니다. tf.GradientTape은 순전파의 연산을 기록해 TensorFlow가 역전파와 경사 하강법에 필요한 그래디언트를 계산할 수 있도록 합니다. 다음 코드는 두 기능을 모두 사용합니다.

import tensorflow as tf

w = tf.Variable([[1.0], [-2.0]])
x = tf.constant([[3.0, 4.0]])


@tf.function  # trace the Python function into a TensorFlow graph on the first call
def loss_fn(x):
    print("Tracing")  # Python code runs only while tracing, not on every call
    return tf.reduce_sum((x @ w) ** 2)


# Record operations on a tape to compute the gradient of the loss with respect to w
with tf.GradientTape() as tape:
    loss = loss_fn(x)
gradient = tape.gradient(loss, w)

loss_fn(x)  # same input shape and dtype: reuses the traced graph without printing
print(f"loss {loss.numpy()}, gradient {gradient.numpy().ravel()}")

Tracing을 한 번 출력한 다음 loss 25.0, gradient [-30. -40.]을 출력합니다. 두 번째 호출은 Python 함수 본문을 실행하지 않고 캐시된 그래프를 실행하며, w = (1, -2)에서 (3w₁ + 4w₂)²의 그래디언트는 2 × (-5) × (3, 4)입니다. 분산 학습에서는 tf.distribute 전략을 사용해 여러 GPU, TPU 슬라이스 또는 머신에 모델을 복제합니다.

TensorFlow 생태계#

  • Keras: 계층과 모델을 정의하고 fit을 사용해 학습시키는 고수준 API입니다. TensorFlow 2.16부터 TensorFlow를 설치하면 JAX와 PyTorch에서도 실행되는 Keras 3가 함께 설치됩니다.
  • TensorBoard: 학습 중 손실 곡선, 지표, 히스토그램, 모델 그래프를 표시하는 대시보드입니다. Ultralytics YOLO 학습 실행을 포함해 다른 프레임워크가 작성한 로그도 읽을 수 있으며, TensorFlow 2.21은 더 이상 TensorBoard를 종속 항목으로 설치하지 않습니다.
  • TensorFlow Serving: SavedModel을 로드하고 gRPC 또는 REST를 통해 예측 요청에 응답하는 서빙 시스템이며, 모델을 중단 없이 교체할 수 있도록 버전 관리를 지원합니다.
  • TFX: 데이터 검증, 학습, 평가, 승인된 모델의 서빙 배포를 연결하는 프로덕션 머신러닝 파이프라인 프레임워크입니다.
  • TensorFlow.js: 브라우저와 Node.js에서 모델을 실행하고 학습하므로, 데이터를 서버로 보내지 않고 사용자 기기에서 추론할 수 있습니다.
  • LiteRT: Google의 Android, iOS, 임베디드 Linux, 마이크로컨트롤러용 온디바이스 런타임으로, 2024년 9월 TensorFlow Lite에서 이름이 변경되었습니다. TensorFlow, PyTorch 또는 JAX에서 변환된 .tflite 모델을 실행하며 모바일 GPU와 NPU의 가속을 지원합니다.

TensorFlow, PyTorch, JAX 비교#

  • PyTorch와 TensorFlow 비교: PyTorch는 처음부터 즉시 실행을 우선시했으며, torch.compile을 통해 그래프 컴파일을 추가로 지원합니다. 대부분의 신규 연구 코드와 오픈 웨이트 모델에서 기본 프레임워크로 사용되는 반면, TensorFlow는 서버, 브라우저, 모바일 장치에 배포할 수 있는 성숙한 스택이 강점입니다.
  • JAX: 조합 가능한 변환을 제공하는 Google의 NumPy 스타일 라이브러리로, 도함수 계산에는 grad, XLA 컴파일에는 jit, 벡터화에는 vmap을 사용합니다. Google은 JAX로 Gemini 모델을 학습합니다.
  • Keras: 별도의 엔진이 아니라 고수준 API입니다. Keras 3 코드는 TensorFlow, JAX 또는 PyTorch에서 실행되므로 모델 정의가 프로젝트를 하나의 프레임워크에 종속시키지 않습니다.

TensorFlow 런타임용 모델 변환#

다른 프레임워크에서 학습한 모델은 변환기를 통해 TensorFlow 배포 도구를 사용할 수 있습니다. onnx2tf는 ONNX 그래프를 TensorFlow SavedModel로 재구성하고, jax2tf는 JAX 함수를 TensorFlow 함수로 래핑하며, Google의 LiteRT Torch 변환기는 PyTorch에서 LiteRT 모델을 직접 생성합니다. Ultralytics YOLO 모델은 PyTorch로 작성되며, 해당 내보내기 모드는 YOLO26에 이러한 경로를 사용합니다. format="saved_model"은 ONNX를 내보내고 onnx2tf로 SavedModel로 변환해 TensorFlow Serving에 사용하며, format="edgetpu"은 Coral Edge TPU용 INT8 모델을 컴파일합니다. format="litert"은 LiteRT Torch를 사용하므로 TensorFlow를 설치할 필요가 없습니다. 다음 코드는 SavedModel로 내보냅니다.

from ultralytics import YOLO

# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")

# Convert through ONNX to a TensorFlow SavedModel directory
path = model.export(format="saved_model")
print(f"SavedModel: {path}")

내보내면 yolo26n_saved_model 폴더가 생성됩니다. tf.saved_model.load은 Python에서 이 폴더를 로드하며, Ultralytics YOLO 자체도 YOLO("yolo26n_saved_model")로 실행할 수 있습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요