Keras: 고수준 API

Keras: 고수준 API (The high-level API for TensorFlow)

모델을 처음부터 하나씩 만들기 전에, 대부분의 경우 이미 검증된 고수준 인터페이스로 빠르게 시작하는 게 효율적이에요. Keras 는 TensorFlow의 고수준 API로, 딥러닝 문제에 집중하면서도 접근하기 쉽고 생산성이 높은 인터페이스를 제공해요. TPU 팟이나 대규모 클러스터처럼 TensorFlow의 확장성과 크로스 플랫폼 능력도 그대로 쓸 수 있죠.

출처: TensorFlow 공식 문서 — Keras: The high-level API for TensorFlow

누가 Keras를 써야 할까

짧게 답하면 모든 TensorFlow 사용자가 기본으로 Keras API를 쓰는 게 좋아요. 엔지니어든 연구자든 ML 실무자든 Keras로 시작하는 걸 권장해요. 대부분의 문제는 Keras만으로 해결되기 때문이에요.

Keras API 구성 요소

Keras의 핵심 데이터 구조는 레이어(layers)모델(models) 이에요. 레이어는 단순한 입력/출력 변환이고, 모델은 레이어들의 방향성 비순환 그래프(DAG)예요.

레이어 (Layers)

tf.keras.layers.Layer 클래스가 Keras의 기본 추상화예요. Layer 는 상태(가중치)와 연산(tf.keras.layers.Layer.call 메서드에 정의)을 함께 캡슐화해요. 레이어가 만드는 가중치는 학습 가능(trainable) 또는 고정(비학습)일 수 있고, 레이어는 재귀적으로 조합 가능해요. 어떤 레이어 인스턴스를 다른 레이어의 속성으로 두면, 바깥 레이어가 안쪽 레이어가 만든 가중치를 추적하기 시작해요.

레이어는 정규화나 텍스트 벡터화 같은 데이터 전처리 작업에도 쓸 수 있어요. 전처리 레이어를 모델에 직접 포함하면 모델 자체가 이식 가능해져요.

모델 (Models)

모델은 레이어들을 묶어 데이터로 학습할 수 있게 만든 객체예요. 가장 단순한 형태는 레이어를 선형으로 쌓은 Sequential 모델이에요. 더 복잡한 구조가 필요하면, 레이어들의 임의 그래프를 만들 수 있는 Keras functional API 나, 클래스 상속으로 처음부터 모델을 쓰는 subclassing 을 쓸 수 있어요.

주요 학습·평가 메서드는 이렇게 나뉘어요.

  • tf.keras.Model.fit : 정해진 에폭 수만큼 모델을 학습.
  • tf.keras.Model.predict : 입력 샘플에 대한 예측 생성.
  • tf.keras.Model.evaluate : tf.keras.Model.compile 로 설정한 손실·메트릭 값을 반환.

tf.keras.Model.compilesteps_per_execution 인자를 쓰면 한 번의 tf.function 호출에서 여러 배치를 처리할 수 있어서, 특히 TPU에서 장치 활용도를 크게 높일 수 있어요.

기타 API와 도구

Keras는 옵티마이저(optimizers), 메트릭(metrics), 손실(losses), 데이터 로딩 유틸리티 등 딥러닝에 필요한 다양한 API를 함께 제공해요. 전체 목록은 Keras API 레퍼런스를 참고하세요.

다음 단계

더 알아보기