실시예 2 훈련


훈련 기능

async function trainModel(model, inputs, labels, surface) {
  const batchSize = 25;
  const epochs = 100;
  const callbacks = tfvis.show.fitCallbacks(surface, ['loss'], {callbacks:['onEpochEnd']})
  return await model.fit(inputs, labels,
    {batchSize, epochs, shuffle:true, callbacks:callbacks}
  );
}

epochs 는 모델이 수행할 반복(루프) 수를 정의합니다.

model.fit 은 루프를 실행하는 함수입니다.

callbacks 는 모델이 그래픽을 다시 그리려고 할 때 호출할 콜백 함수를 정의합니다.


모델 테스트

모델이 학습되면 이를 테스트하고 평가하는 것이 중요합니다.

다양한 입력 범위에 대해 모델이 예측하는 것을 검사하여 이를 수행합니다.

하지만 그렇게 하기 전에 데이터를 비정규화해야 합니다.

A 정규화

let unX = tf.linspace(0, 1, 100);
let unY = model.predict(unX.reshape([100, 1]));

const unNormunX = unX.mul(inputMax.sub(inputMin)).add(inputMin);
const unNormunY = unY.mul(labelMax.sub(labelMin)).add(labelMin);

unX = unNormunX.dataSync();
unY = unNormunY.dataSync();

그런 다음 결과를 볼 수 있습니다.

결과 플롯

const predicted = Array.from(unX).map((val, i) => {
return {x: val, y: unY[i]}
});

// Plot the Result
tfPlot([values, predicted], surface1)