Ejemplo 1 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 inspeccionando 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)