-
Keras Multi(input, output) 모델 생성 방법딥러닝/Keras 2019. 11. 13. 23:04
이전 포스팅에서 간단하게 Keras 모델 생성 방법 2가지를 소개하였다.
이번 포스팅에서는 Model Class를 이용한 Multi(input, output) 모델 생성 방법을 소개한다.
출처: https://keras.io/getting-started/functional-api-guide/#multi-input-and-multi-output-models
위 그림의 모델은 [main_input, aux_input] 2가지를 입력 레이어를 가진다. 또한 [aux_output, main_ouput] 2가지 출력 레이어도 가진다.
기존 Sequential() 함수를 이용한 모델 박스 생성에서는 add() 함수를 이용하여 레이어를 이어 붙이는 형식이다. 결과적으로 위에 모델과 같이 2개 입력을 받는 레이어를 생성하기 어렵다.
Model Class를 이용하면 아래와 같은 코드를 이용하여 모델을 구성할 수 있다.
from keras.layers import Input, Embedding, LSTM, Dense
from keras.models import Model
import numpy as np
np.random.seed(0)
main_input = Input(shape=(100,), dtype='int32', name='main_input')
x = Embedding(output_dim=512, input_dim=10000, input_length=100)(main_input)
lstm_out = LSTM(32)(x)
auxiliary_output = Dense(1, activation='sigmoid', name='aux_output')(lstm_out)
auxiliary_input = Input(shape=(5,), name='aux_input')
x = keras.layers.concatenate([lstm out, auxiliary_input])
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
main_output = Dense(1, activation='sigmoid', name='main_output')(x)
model = Model(inputs=[main_input, auxiliary_input], outputs=[main_output, auxiliary_output])해당 레이어들을 모두 정의한 후 Model()에서 inputs, outputs 인자를 배열 형태로 선언해주면 생성된다.
'딥러닝 > Keras' 카테고리의 다른 글
Keras 지원하는 활성 함수(1) (0) 2019.11.19 Keras RNN 모델 생성 방법 (0) 2019.11.14 Keras 모델 생성 방법 (0) 2019.11.13 Ubuntu Keras 설치 (0) 2019.11.12