다중 입력 모델 정의하기
어떤 경우에는 원하는 모델 아키텍처를 담기에는 Sequential API가 충분히 유연하지 않아 Functional API를 사용해야 할 때가 있습니다. 예를 들어 서로 다른 아키텍처를 가진 두 모델을 함께 학습하려면 Functional API가 필요합니다. 이번 연습에서는 그 방법을 살펴보겠습니다. 또한 .summary() 메서드를 활용해 결합된 모델의 아키텍처를 확인해 보겠습니다.
참고로 keras는 tensorflow에서 이미 임포트되어 있습니다. 추가로, 첫 번째와 두 번째 모델의 입력 레이어는 각각 m1_inputs, m2_inputs로 정의되어 있습니다. 두 모델의 아키텍처는 동일하지만, 하나는 첫 레이어에서 sigmoid 활성화를, 다른 하나는 relu를 사용한다는 점에 유의하세요.
이 연습은 강의의 일부입니다
Python으로 시작하는 TensorFlow
연습 안내
- 모델 1의 입력 레이어를 모델 1의 첫 번째 레이어에 연결하고, 첫 번째 레이어의 출력을 두 번째 레이어에 전달하세요.
- 모델 2의 입력 레이어를 모델 2의 첫 번째 레이어에 연결하고, 첫 번째 레이어의 출력을 두 번째 레이어에 전달하세요.
add()연산을 사용해 모델 1과 모델 2의 두 번째 레이어를 결합하세요.- Functional 모델 정의를 완성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# For model 1, pass the input layer to layer 1 and layer 1 to layer 2
m1_layer1 = keras.layers.Dense(12, activation='sigmoid')(____)
m1_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# For model 2, pass the input layer to layer 1 and layer 1 to layer 2
m2_layer1 = keras.layers.Dense(12, activation='relu')(____)
m2_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# Merge model outputs and define a functional model
merged = keras.layers.add([m1_layer2, ____])
model = keras.Model(inputs=[____, m2_inputs], outputs=____)
# Print a model summary
print(model.summary())