더북(TheBook)

전체 코드를 실행해 보겠습니다. 앞 절에서 배운 코드 중 model.compile()까지는 동일합니다. 그 아래에 추가되는 코드는 다음과 같습니다.

# 모델이 저장되는 조건을 설정합니다.
modelpath = "./data/model/{epoch:02d}-{val_accuracy:.4f}.hdf5"
checkpointer = ModelCheckpoint(filepath=modelpath, verbose=1)

# 모델을 실행합니다. 
history = model.fit(X_train, y_train, epochs=50, batch_size=500, 
validation_split=0.25, verbose=0, callbacks=[checkpointer])

# 테스트 결과를 출력합니다.
score = model.evaluate(X_test, y_test)
print('Test accuracy:', score[1])

실행 결과

Epoch 00001: saving model to ./data/model/all\01-0.7646.hdf5
Epoch 00002: saving model to ./data/model/all\02-0.7646.hdf5
... (중략) ...
Epoch 00049: saving model to ./data/model/all\49-0.9408.hdf5
Epoch 00050: saving model to ./data/model/all\50-0.9408.hdf5

41/41 [==============================] - 0s 2ms/step - loss: 0.1686 - accuracy: 0.9392
Test accuracy: 0.939230740070343

파일명을 통해 에포크 수와 정확도를 알 수 있습니다. 첫 번째 에포크에서 76.46%였던 정확도가 50번째에서 94.08%로 업데이트되는 것과 각 에포크별 모델이 지정된 폴더에 저장되는 것을 볼 수 있습니다. 테스트하면 93.9%의 정확도를 보여 줍니다.

실행 결과는 환경에 따라 미세하게 달라질 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.