더북(TheBook)

입력 값(input_dim)이 784개, 은닉층이 512개, 출력이 열 개인 모델입니다. 활성화 함수로 은닉층에서는 relu를, 출력층에서는 softmax를 사용했습니다.

그리고 딥러닝 실행 환경을 위해 오차 함수로 categorical_crossentropy, 최적화 함수로 adam을 사용하겠습니다.

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

모델 실행에 앞서 먼저 성과를 저장하고, 모델의 최적화 단계에서는 학습을 자동 중단하게끔 설정하겠습니다. 14장에서 배운 내용과 같습니다('학습의 자동 중단' 참조). 열 번 이상 모델 성능이 향상되지 않으면 자동으로 학습을 중단합니다.

from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping

# 모델 최적화를 위한 설정 구간입니다.
modelpath = "./MNIST_MLP.hdf5"
checkpointer = ModelCheckpoint(filepath=modelpath, monitor='val_loss', verbose=1, save_best_only=True)
early_stopping_callback = EarlyStopping(monitor='val_loss', patience=10)

주피터 노트북에서 실습한다면 다음 코드가 modelpath 코드 윗부분에 추가됩니다. 예제 파일을 참고하세요.

 

MODEL_DIR = './model/'
if not os.path.exists(MODEL_DIR):
    os.mkdir(MODEL_DIR)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.