Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)라는 연구 프로젝트의 일환으로 개발된 딥러닝 API입니다. Python으로 작성되었으며, 머신러닝 문제를 효율적으로 해결할 수 있도록 돕는 생산적인 고수준(high-level) 인터페이스를 제공합니다.
Keras는 TensorFlow 프레임워크 위에서 동작하며, 빠르게 실험할 수 있도록 설계되었습니다. 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 핵심 추상화와 빌딩 블록을 제공합니다.
또한 Keras는 확장성이 뛰어나고 크로스 플랫폼을 지원합니다. 이를 통해 TPU나 GPU 클러스터에서 실행할 수 있으며, 웹 브라우저나 모바일 기기에서 구동할 수 있도록 모델을 내보내는 것도 가능합니다.
Keras는 TensorFlow 패키지에 이미 포함되어 있으므로, 아래 코드 한 줄로 간단히 불러올 수 있습니다.
import tensorflow from tensorflow import keras
Keras 함수형 API란?
Keras의 함수형 API(Functional API)는 순차 API(Sequential API)로 생성한 모델보다 훨씬 유연한 모델을 만들 수 있게 해줍니다. 함수형 API는 비선형 토폴로지를 가진 모델을 다룰 수 있고, 레이어를 공유하거나 여러 개의 입력과 출력을 처리하는 것도 가능합니다.
일반적으로 딥러닝 모델은 여러 층(layer)으로 구성된 방향성 비순환 그래프(DAG, Directed Acyclic Graph) 형태입니다. 함수형 API를 사용하면 이러한 레이어 그래프를 직관적으로 구축할 수 있습니다.
Google Colaboratory에서 실행하기
이 글의 예제 코드는 Google Colaboratory에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있는 환경으로, 별도의 설정이 필요 없으며 GPU(그래픽 처리 장치)를 무료로 사용할 수 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
예제 코드
print("Model is being compiled")
model.compile(
optimizer=keras.optimizers.RMSprop(1e-3),
loss={
"priority": keras.losses.BinaryCrossentropy(from_logits=True),
"department": keras.losses.CategoricalCrossentropy(from_logits=True),
},
loss_weights=[1.0, 0.2],
)
코드 출처 − https://www.tensorflow.org/guide/keras/functional
실행 결과
Model is being compiled
코드 설명
모델은 'compile' 메소드를 호출하여 컴파일됩니다.
컴파일 과정에서 각 출력(output)마다 서로 다른 손실(loss) 함수를 지정할 수 있습니다.
각 손실에 서로 다른 가중치(weight)를 부여할 수도 있으며, 이를 통해 전체 학습 손실(total training loss)을 조절할 수 있습니다.