-
Keras 모델 생성 방법딥러닝/Keras 2019. 11. 13. 01:05
이 포스팅에서는 Keras에서 모델을 생성하는 2가지 방법을 소개한다.
1) Sequential()을 이용한 모델 생성
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
이 예재는 Keras git에서 제공하는 예제 코드이다.
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy'])현재 이 모델에서는 Sequential() 함수를 이용하여 model 박스를 생성한다.
이후 add() 함수를 이용하여 모델에 집어 넣을 레이어들을 선택해주면 된다.
마지막 레이어까지 add()를 이용하여 집어 넣었다면, 마지막으로 compile()을 이용하여 학습시 이용한 손실 함수(loss function)과 최적화 방법(optimizer)를 지정해주면 된다.
2) Model Class를 이용한 모델 생성
다음은 Model Class를 이용하여 생성하는 방법이다.
주로 포스팅 저자는 이 방법을 자주 사용하는데, 그 이유는 multi input과 multi output을 정의하기 쉽기 때문이다.
이와 관련된 내용은 추후에 포스팅할 예정이다.
https://keras.io/models/model/
from keras.models import Model
from keras.layers import Input, Dense
a = Input(shape=(32,))
b = Dense(32)(a)
model = Model(inputs=a, outputs=b)해당 코드는 기본적인 모델 생성 방법을 보여준다. 먼저 Input Layer를 선언하고, 이를 a라는 변수에 정의한다.
다음은 Dense Layer를 선언하고, 이를 b라는 변수에 정의하는데 여기서 주의해야할 점은 이전 레이어의 변수 정보를 레이어 선언 뒤쪽에 ()가로를 이용하여 붙여 넣어줘야만 한다.
위와 같은 방식으로 모든 레이어를 정의하게 되는 경우, Model Class를 이용하여 맨 앞에 input 변수와 마지막 output 변수를 인자로 넣어주고 모델을 생성한다.
위 모델도 동일하게 생성된 model은 compile() 함수를 이용하여 손실 함수(loss function)과 최적화 방법(optimizer)를 지정해주면 된다.
'딥러닝 > Keras' 카테고리의 다른 글
Keras 지원하는 활성 함수(1) (0) 2019.11.19 Keras RNN 모델 생성 방법 (0) 2019.11.14 Keras Multi(input, output) 모델 생성 방법 (0) 2019.11.13 Ubuntu Keras 설치 (0) 2019.11.12