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

Keras

Keras는 신경망을 구축하고 학습하기 위한 고수준 Python API로, Keras 3부터는 동일한 코드를 JAX, TensorFlow 또는 PyTorch에서 실행할 수 있습니다.

Keras는 신경망을 구축하고 학습하기 위한 오픈 소스 고수준 Python API입니다. François Chollet가 딥러닝 실험을 빠르게 작성할 수 있도록 2015년 3월에 공개했습니다. 모델은 계층을 쌓거나 그래프로 구성하며, compile는 옵티마이저, 손실 함수, 메트릭을 설정하고 fit는 학습 루프를 실행합니다. Keras는 TensorFlow의 공식 고수준 API가 되었으며, 2023년 11월에 공개된 Keras 3는 Keras를 가져올 때 선택한 JAX, TensorFlow 또는 PyTorch에서 동일한 모델 코드를 실행합니다. 짧고 읽기 쉬운 코드 덕분에 교육, 프로토타이핑, Kaggle 대회에서 흔히 선택되며, 이미지 분류와 자연어 처리의 프로덕션 모델에도 사용됩니다.

Keras 작동 방식#

Keras 모델은 Dense, Conv2D, LSTM, MultiHeadAttention 등의 계층으로 구성되며, 각 계층은 자체 가중치를 보유합니다. Keras는 계층을 구성하는 세 가지 방법을 제공합니다. 단순한 계층 구조에는 Sequential API를, 분기, 공유 계층 또는 여러 입력이 있는 그래프에는 함수형 API를, 순전파를 완전히 제어하려면 keras.Model 서브클래싱을 사용합니다. 컴파일된 모델은 배치 처리, 역전파, 메트릭, 검증 데이터, 체크포인트 저장이나 조기 종료를 위한 콜백을 처리하는 fit으로 학습한 뒤, evaluate 및 predict로 새 데이터의 점수를 계산합니다. 다음 코드는 Keras에 포함된 MNIST 데이터셋을 사용해 간단한 숫자 분류기를 학습합니다.

import os

os.environ["KERAS_BACKEND"] = "torch"  # or "jax" or "tensorflow", set before importing Keras

import keras

# MNIST handwritten digits, with pixels scaled to [0, 1]
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Define the model as a stack of layers
model = keras.Sequential(
    [
        keras.Input(shape=(28, 28)),
        keras.layers.Flatten(),
        keras.layers.Dense(128, activation="relu"),
        keras.layers.Dense(10, activation="softmax"),
    ]
)

# Configure training, then train and evaluate
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(x_train, y_train, epochs=2, batch_size=64, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {accuracy:.3f}")

두 번의 에폭 후 테스트 정확도가 약 0.96으로 출력됩니다. "torch"를 "jax" 또는 "tensorflow"로 변경하면 다른 줄은 수정하지 않고 동일한 모델을 다른 프레임워크에서 실행할 수 있습니다.

Keras 3와 백엔드#

Keras는 원래 Theano, TensorFlow, CNTK 등 여러 엔진에서 실행되었습니다. 2019년 9월에 공개된 Keras 2.3은 마지막 멀티 백엔드 릴리스였으며, 이후 개발은 tf.keras으로 TensorFlow에 통합되었습니다. Keras 3는 백엔드 독립성을 되살렸습니다. 계층과 모델은 각 백엔드가 구현하는 NumPy 스타일 연산 집합인 keras.ops를 기반으로 작성되므로, .keras 형식으로 저장한 모델을 모든 백엔드에서 다시 불러와 학습할 수 있습니다. PyTorch 백엔드를 사용하면 Keras 모델은 사용자 지정 PyTorch 학습 루프에서 사용할 수 있는 torch.nn.Module이기도 합니다. 또한 Keras 3.8부터 추론 전용 OpenVINO 백엔드를 통해 학습된 모델을 Intel 하드웨어에서 실행할 수 있습니다.

TensorFlow 2.16부터 TensorFlow를 설치하면 Keras 3도 설치되며, Keras 2가 필요한 코드는 별도의 tf_keras 패키지를 사용합니다. 모델 변환기에서도 Keras를 대상으로 합니다. Ultralytics YOLO가 YOLO26을 TensorFlow SavedModel로 내보낼 때, onnx2tf 변환기는 저장하기 전에 ONNX 그래프에서 PyTorch 네트워크를 계층별로 다시 구성해 Keras 모델로 만듭니다.

KerasHub의 사전 학습 모델#

KerasHub는 이미지용 ResNet, 텍스트용 BERT, Gemma 대규모 언어 모델 등 인기 아키텍처의 사전 학습 체크포인트가 포함된 Keras 3 구현을 제공합니다. 프리셋 이름을 지정하면 전이 학습에 바로 사용할 수 있는 모델을 불러옵니다. keras_hub.models.ImageClassifier.from_preset("resnet_50_imagenet")은 ImageNet으로 학습한 분류기를 반환하며, 위에서 사용한 것과 동일한 fit 호출로 파인튜닝해 새 데이터셋에 맞출 수 있습니다. 나머지 Keras 3 모델과 마찬가지로 KerasHub 모델은 세 가지 학습 백엔드 중 어느 것이든 사용할 수 있습니다.

Keras와 TensorFlow 및 PyTorch 비교#

  • TensorFlow: 자체 런타임, 컴파일러, TensorFlow Serving 및 LiteRT와 같은 배포 도구를 갖춘 완전한 프레임워크입니다. 많은 TensorFlow 사용자는 Keras API로 모델을 작성하며, TensorFlow는 Keras 코드를 실행하는 엔진 중 하나입니다.
  • PyTorch: 사용자가 일반적으로 직접 학습 루프를 작성하거나 PyTorch Lightning과 같은 라이브러리를 사용하는 프레임워크입니다. Keras는 fit을 통해 학습 루프를 제공하고 PyTorch를 백엔드로 사용할 수 있으므로 두 프레임워크는 상호 배타적이지 않습니다.
  • JAX: 미분, XLA 컴파일, 벡터화를 위한 합성 가능한 함수 변환 라이브러리입니다. JAX에는 기본 제공 계층 또는 학습 API가 없으며, Keras는 이를 보완하는 방법 중 하나입니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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의 미래를 만들어 가세요!

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