더북(TheBook)

Functional API를 이용하는 방법

Functional API는 Sequential API로 복잡한 모델을 생성할 때의 한계를 극복할 수 있습니다. 입력과 출력을 사용자가 정의해서 모델 전체를 규정할 수 있기 때문에 다중 입력(multi-input)과 다중 출력(multi-output) 등 복잡한 모델을 정의할 수 있습니다.

▲ 그림 2-6 Functional API

Functional API와 Sequential API 차이는 다음과 같습니다.

Functional API는 입력 데이터의 크기(shape)input()의 파라미터로 사용하여 입력층을 정의해 주어야 합니다.

이전 층을 다음 층의 입력으로 사용합니다.

model()에 입력과 출력을 정의합니다.

다음은 Functional API를 이용한 예시 코드입니다.

from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
inputs = Input(shape=(5,)) ------ 입력층(열(특성) 다섯 개를 입력으로 받음)
x = Dense(8, activation="relu")(inputs) ------ 은닉층 1
x = Dense(4, activation="relu")(x) ------ 은닉층 2
x = Dense(1, activation="softmax")(x) ------ 출력층
model = Model(inputs, x)

간단한 구조의 모델을 만들 때는 Sequential API를 사용하고, 직관적이며 빠르게 복잡한 구조의 모델을 만들 때는 주로 Functional API를 사용한다고 이해하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.