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를 사용한다고 이해하면 됩니다.