훈련된 모델의 평가를 확인해 보겠습니다.
코드 8-32 모델 평가
from tensorflow.keras.models import load_model
model = load_model(checkpoint_path)
scores = model.evaluate(x_test, y_test, verbose=1)
print(f'Score: {model.metrics_names[0]} of {scores[0]}; {model.metrics_names[1]} of
{scores[1]*100}%')
다음은 모델 평가 실행 결과입니다.
782/782 [==============================] - 9s 12ms/step - loss: 1.9404 - accuracy: 0.8711
Score: loss of 1.9403566122055054; accuracy of 87.11199760437012%
체크포인트를 이용하여 정확도를 측정했더니 88%가 나왔습니다. 나쁘지 않은 결과이지만, 조기 종료를 적용한 결과와 비교해 보겠습니다.
코드 8-33 조기 종료를 적용한 모델 훈련
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint
keras_callbacks = [
EarlyStopping(monitor='val_loss', patience=30, mode='min', min_delta=0.0001),
ModelCheckpoint(checkpoint_path, monitor='val_loss', save_best_only=True, mode='min')
] ------ ①
model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
validation_split=0.2,
callbacks=keras_callbacks)