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); ------ 모델이 본 적 없는 데이터를 사용해 모델의 정확도를 평가합니다.
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.