Keras는 그리스어로 '뿔(horn)'을 의미하며, ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 개발된 딥러닝 API입니다. Python으로 작성된 고수준(high-level) API로, 머신러닝 문제를 효율적으로 해결할 수 있도록 생산성 높은 인터페이스를 제공합니다.
Keras는 TensorFlow 프레임워크 위에서 동작하며, 빠른 실험과 반복 개발을 지원하도록 설계되었습니다. 머신러닝 솔루션을 개발하고 캡슐화하는 데 필요한 핵심 추상화 계층과 빌딩 블록을 함께 제공합니다.
또한 뛰어난 확장성과 크로스 플랫폼 호환성을 갖추고 있어 TPU나 GPU 클러스터 환경에서도 실행할 수 있습니다. 학습된 Keras 모델은 웹 브라우저나 모바일 기기에서 구동되도록 내보내는 것도 가능합니다.
Keras는 TensorFlow 패키지에 기본 포함되어 있으므로, 별도 설치 없이 아래 코드만으로 불러올 수 있습니다.
import tensorflow from tensorflow import keras
Keras 함수형 API란?
함수형 API(Functional API)는 순차형(Sequential) API로 만든 모델보다 훨씬 유연한 구조의 모델을 생성할 수 있게 해줍니다. 비선형 토폴로지를 가진 모델, 레이어를 공유하는 모델, 그리고 여러 개의 입력과 출력을 갖는 모델까지 자유롭게 구현할 수 있습니다. 일반적으로 딥러닝 모델은 여러 층(layer)으로 구성된 방향성 비순환 그래프(DAG, Directed Acyclic Graph)이며, 함수형 API는 이 레이어 그래프를 직관적으로 구축하는 데 활용됩니다.
이 글의 코드는 Google Colaboratory(Colab)에서 실행했습니다. Colab은 브라우저에서 바로 Python 코드를 실행할 수 있는 환경으로, 별도 설정 없이 GPU를 무료로 사용할 수 있으며 Jupyter Notebook을 기반으로 만들어졌습니다.
모델 플롯 예제
print("모델을 플롯하는 중입니다")
keras.utils.plot_model(model, "my_resnet.png", show_shapes=True)
코드 출처 − https://www.tensorflow.org/guide/keras/functional
실행 결과

코드 설명
plot_model 메서드는 모델을 구성하는 레이어들을 '레이어 그래프(graph-of-layers)' 형태로 시각화해 줍니다.
show_shapes=True 옵션을 지정하면 각 레이어를 통과하는 데이터(텐서)의 입출력 크기(shape)가 함께 표시되어, 모델 구조를 더욱 상세하게 파악할 수 있습니다.
생성된 이미지 파일(my_resnet.png)은 기술 문서 작성이나 발표 자료 제작에 유용하게 활용할 수 있습니다.
참고로 plot_model 기능을 사용하려면 시스템에 pydot과 graphviz가 설치되어 있어야 합니다.