시작하기무료로 시작하기

다중 입력 모델 정의하기

어떤 경우에는 원하는 모델 아키텍처를 담기에는 Sequential API가 충분히 유연하지 않아 Functional API를 사용해야 할 때가 있습니다. 예를 들어 서로 다른 아키텍처를 가진 두 모델을 함께 학습하려면 Functional API가 필요합니다. 이번 연습에서는 그 방법을 살펴보겠습니다. 또한 .summary() 메서드를 활용해 결합된 모델의 아키텍처를 확인해 보겠습니다.

참고로 kerastensorflow에서 이미 임포트되어 있습니다. 추가로, 첫 번째와 두 번째 모델의 입력 레이어는 각각 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())
코드 편집 및 실행