Keras 는 Layer(층)을 조합하여 Model을 만들며, 층의 그래프 입니다.
가장 기본적인 모델은 Keras.Sequential Model 입니다.
Keras Function API Sequential 모델 설명
from keras import Sequential
from keras.layers import Dense, Activation
# for a single-input model with 2 classes
model = Sequential()
▣ Layer 층의 기본적인 모델인 Sequential 을 선언합니다.
model.add(Dense(32, activation='relu'))
▣ 32개의 유닛을 가진 연결층을 모델에 추가합니다.
model.add(Dense(32, activation='relu'))
▣ 또하나의 연결층을 모델에 추가 합니다.
model.add(Dense(1, activation='sigmoid'))
▣ 1개의 출력 유닛을 가진 softmax 층을 추가합니다.
▣ Keras.layers 의 매개변수
- activation : Layers의 활성화 함수를 설정 합니다. 기본값은 활성화 함수를 적용하지 않습니다. 'relu' 나 'sigmoid' 등 기본으로 제공되는 함수를 쓰거나 호출 가능한 객체를 지정 할 수 있습니다.
- kernel_initializer 와 bias_initializer : Layer 의 weight kernel 과 bias 를 초기화 하는 방법입니다. 내장 함수나 호출 가능한 객체를 지정할 수 있으며, 기본값으로 glorot_uniform 초기화 입니다
- kernel_regularizer 와 bias_reqularizer : Layer의 weight Kernel 과 bias 에 적용할 규제방법을 지정 할 수 있습니다. 기본값은 규제를 지정하지 않습니다.
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
▣ 모델을 구성한후 compile 메서드를 호출하여 학습과정을 설정합니다.
▣ Keras.model.compile 의 매개변수
- optimizer : tf.keras.optimizers.Adam 이나 tf.keras.optimizers.SGD 의 객체를 전달 합니다. 기본 매개변수를 사용할 경우 'adam' 이나 'sgd' 의 문자열로 지정할 수 있습니다.
- loss : 최적화 과정에서 최소화될 loss function 을 설정 합니다. categorical_crossentropy, binary_crossentropy 가 자주 사용되며, loss function 의 함수 이름을 지정하거나 호출 가능한 객체를 전달할 수 있습니다.
- mertics : 훈련을 모니터링 하기위한 객체입니다.
# Numpy random Data 로 훈련하는 예제
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))
val_data = np.random.random((100, 100))
val_labels = np.random.random((100, 1))
model.fit(data, labels, epochs=10, batch_size=32, validation_data=(val_data, val_labels))
▣ fit 메서드를 호출하여 훈련데이터를 학습합니다.
▣ Keras.model.fit 의 매개변수
- epochs : 학습훈련은 에포크(epochs) 로 구성되며, 학습반복 횟수를 의미합니다.
- batch_size : 정수값으로 배치의 크기를 지정하면 모델은 데이터를 작은 배치로 나누어 훈련학습을 합니다.
- validation_data : prototype 의 모델을 만들때 validation data로 성능 검증을 합니다. input 과 Label 의 tuple을 이 매개변수로 전달하면 에포크가 끝날때 마다 inference mode 에서 데이터의 손실과 측정결과를 출력합니다.
model.evaluate(val_data, val_labels, batch_size=32)
result = model.predict(data, batch_size=32)
▣ keras.Model.evaluate 와 kera.Model.predict 메서드로 inference mode에서 손실과 지표를 평가합니다.
'Keras' 카테고리의 다른 글
Keras의 Function API 로 모델 생성 하기 예제 (0) | 2019.11.07 |
---|---|
Keras API 로 Image 를 Numpy 배열로 변환하는 방법 예제 (0) | 2019.11.06 |
Keras API 로 Image Load 방법 예제 (0) | 2019.11.06 |