Ejemplo 2 Entrenamiento


Función de entrenamiento

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 define cuántas iteraciones (bucles) hará el modelo.

model.fit es la función que ejecuta los bucles.

callbacks define la función de devolución de llamada para llamar cuando el modelo quiere volver a dibujar los gráficos.


Probar el modelo

Cuando se entrena un modelo, es importante probarlo y evaluarlo.

Hacemos esto al inspeccionar lo que predice el modelo para un rango de entradas diferentes.

Pero, antes de que podamos hacer eso, tenemos que desnormalizar los datos:

A normalizar

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

Entonces podemos ver el resultado:

Trazar el resultado

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

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