본문 바로가기

Lecture AI/7장.Sequential 모델을 넘어서: 케라스의 함수형 API

(3)
3. 다중 입력 모델 / 다중 출력 모델 함수형 API는 다중 입력 모델을 만드는 데 사용할 수 있습니다. 일반적으로 이런 모델은 서로 다른 입력 가지를 합치기 위해 여러 텐서를 연결할 수 있는 층을 사용합니다. 텐서를 더하거나 이어 붙이는 식입니다. 관련한 keras함수는 keras.layers.add, keras.layers.concatenate 등입니다. 전형적인 질문-응답 모델은 2개의 입력을 가집니다. 하나는 자연어 질문이고, 또 하나는 답변에 필요한 정보가 담겨 있는 텍스트입니다. 그러면 모델은 답을 출력해야 합니다. 가장 간단한 구조는 미리 정의한 어휘 사전에서 소프트맥스 함수를 통해 한 단어로 된 답을 출력하는 것입니다. 1. 다중 입력 모델 1. 2개의 입력을 가진 질문-응답 모델의 함수형 API구현하기 from keras.mo..
2. 함수형 API 소개 함수형 API에서는 직접 텐서들의 입출력을 다룹니다. 간단한 내용으로 함수형 API의 절차를 보겠습니다. from keras.models import Sequential, Model from keras import layers from keras import Input input_tensor = Input(shape=(64,)) x = layers.Dense(32, activation='relu')(input_tensor) x = layers.Dense(32, activation='relu')(x) output_tensor = layers.Dense(10, activation='softmax')(x) model = Model(input_tensor, output_tensor) model.summary()..
1. Sequential 모델을 넘어서는 케라스의 함수형 API Sequential 모델은 네트워크 입력과 출력이 하나라고 가정합니다. 하지만 일부 네트워크는 개별 입력이 여러 개 필요하거나 출력이 여러 개 필요합니다. 층을 차례대로 쌓지 않고 층 사이를 연결하여 그래프처럼 만드는 네트워크도 있습니다. 만약 세 모델을 동시에 사용한다면 간단하게는 3개의 모델을 따로 훈련하고 각 예측을 가중 평균(weighted average)하는 것입니다. 각 모델에서 추출한 정보가 중복된다면 이 방식은 최적이 아닐 것입니다. 가능한 모든 종류의 입력 데이터를 동시에 사용해서 정확한 하나의 모델을 학습하는 것이 더 나은 방법입니다. 더불어 최근에 개발된 많은 신경망 구조는 선형적이지 않은 네트워크 토폴로지(topology)가 필요합니다. 비순환 유향 그래프 같은 네트워크 구조입니다...