더북(TheBook)

최신 노트북에 있는 브라우저에서 이 모델을 200번의 에포크 동안 훈련하는 데 약 11초 걸립니다. 이제 테스트 세트에서 모델을 평가하여 기준 손실보다 더 나은지 확인해 보죠. 다음 코드는 model.evaluate()를 사용해 테스트 데이터에서 모델의 성능을 평가하고 화면을 업데이트하는 방법을 보여 줍니다.

 

코드 2-15 테스트 데이터에서 모델을 평가하고 UI 업데이트하기(index.js)

ui.updateStatus('테스트 데이터에서 평가합니다...');
  const result = model.evaluate(
    tensors.testFeatures, tensors.testTarget, {batchSize: BATCH_SIZE});
  const testLoss = result.dataSync()[0];
  const trainLoss = trainLogs[trainLogs.length - 1].loss;
  const valLoss = trainLogs[trainLogs.length - 1].val_loss;
  await ui.updateModelStatus(
    '훈련 세트 최종 손실: ${trainLoss.toFixed(4)}\n' +
    '검증 세트 최종 손실: ${valLoss.toFixed(4)}\n' +
    '테스트 세트 손실: ${testLoss.toFixed(4)}',
    modelName);

여기에서 model.evaluate()는 테스트 세트에서 계산한 손실을 담은 스칼라(scalar)(0D 텐서) 값을 반환합니다.

경사 하강법의 무작위성 때문에 조금 다른 결과가 나올 수 있지만, 일반적으로 다음과 같은 결과를 얻을 수 있습니다.

훈련 세트 최종 손실: 23.4724

검증 세트 최종 손실: 25.2567

테스트 세트 손실: 24.4759

기준 손실: 85.58

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