Przykład 2 Szkolenie


Funkcja treningu

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}
  );
}

Epoki określają, ile iteracji (pętli) wykona model.

model.fit to funkcja, która uruchamia pętle.

callbacks definiuje funkcję zwrotną do wywołania, gdy model chce przerysować grafikę.


Przetestuj model

Gdy model jest szkolony, ważne jest, aby go przetestować i ocenić.

Robimy to, sprawdzając, co przewiduje model dla szeregu różnych danych wejściowych.

Ale zanim to zrobimy, musimy cofnąć normalizację danych:

Normalizuj

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();

Następnie możemy spojrzeć na wynik:

Wykreśl wynik

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

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