더북(TheBook)

4.2.5 합성곱 신경망 훈련하기

합성곱 신경망을 성공적으로 정의했으므로 다음 단계는 모델을 훈련하고 훈련 결과를 평가하는 것입니다. 다음 코드에서 이런 작업을 수행합니다.

 

코드 4-2 MNIST 합성곱 신경망 훈련하고 평가하기

const optimizer = 'rmsprop';
model.compile({
  optimizer,
  loss: 'categoricalCrossentropy',
  metrics: ['accuracy']
});

const batchSize = 320;
const validationSplit = 0.15;
await model.fit(trainData.xs, trainData.labels, {
  batchSize: batchSize,
  validationSplit: validationSplit,
  epochs: trainEpochs,
  callbacks: {
    onBatchEnd: async (batch, logs) => { ------ 콜백을 사용하여 훈련하는 동안 정확도와 손실을 그래프로 그립니다. 
      trainBatchCount++;
      ui.logStatus(
          '훈련... (' +
          '${(trainBatchCount / totalNumBatches * 100).toFixed(1)}%' +
          ' 완료). 훈련을 멈추려면 페이지를 새로 고침하거나 종료하세요.');
      ui.plotLoss(trainBatchCount, logs.loss, 'train');
      ui.plotAccuracy(trainBatchCount, logs.acc, 'train');
    },
    onEpochEnd: async (epoch, logs) => {
      valAcc = logs.val_acc;
      ui.plotLoss(trainBatchCount, logs.val_loss, 'validation');
      ui.plotAccuracy(trainBatchCount, logs.val_acc, 'validation');
    }
  }
});

const testResult = model.evaluate(
testData.xs, testData.labels); ------ 모델이 본 적 없는 데이터를 사용해 모델의 정확도를 평가합니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.