Tensorflow.js es una biblioteca de código abierto desarrollada por Google para ejecutar modelos de aprendizaje automático y redes neuronales de aprendizaje profundo en el entorno del navegador o del Node.
Tensorflow.js tf.callbacks.earlyStopping() es una función de devolución de llamada que se usa para detener el entrenamiento cuando los datos de entrenamiento dejan de mejorar.
Sintaxis:
tf.callbacks.earlyStopping(args);
Parámetros: este método acepta los siguientes parámetros.
- args: Es un objeto con los siguientes campos:
- monitor: Debería ser una string. Es el valor que se va a monitorear.
- minDelta: Debería ser un número. Es el valor mínimo por debajo del cual no se considera una mejora en el entrenamiento.
- paciencia: Debe ser un número. Es el número de veces que no debe detenerse cuando encuentra un valor inferior a minDelta.
- detallado: debe ser un número. Es el valor de la verbosidad.
- modo: Debe ser uno de estos tres:
- “auto”: en el modo automático, la dirección se deduce automáticamente del nombre de la cantidad monitoreada.
- “min”: en el modo min, el entrenamiento se detendrá cuando el valor de los datos que se monitorean deje de disminuir.
- “max”: en el modo max, el entrenamiento se detendrá cuando el valor de los datos que se monitorean deje de aumentar.
- línea de base: debe ser un número. Es el número que indica cuando el entrenamiento no se mantiene al día con este valor, el entrenamiento se detendrá. Es la línea final para la cantidad que se monitorea.
- restoreBestWeights: debe ser un valor booleano. Indica si restaurar el mejor valor de la cantidad monitoreada en cada época o no.
Valor devuelto: Devuelve un objeto (EarlyStopping).
A continuación se muestran algunos ejemplos de esta función.
Ejemplo 1: En este ejemplo veremos cómo usar la función tf.callbacks.earlyStopping() en fitDataset:
Javascript
import * as tf from "@tensorflow/tfjs"; const xArray = [ [1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [1, 2, 3, 4], ]; const x1Array = [ [0, 1, 0.5, 0], [1, 0.5, 0, 1], [0.5, 1, 1, 0], [1, 0, 0, 1], ]; const yArray = [1, 2, 3, 4]; const y1Array = [4, 3, 2, 1]; // Create a dataset from the JavaScript array. const xDataset = tf.data.array(xArray); const x1Dataset = tf.data.array(x1Array); const y1Dataset = tf.data.array(x1Array); const yDataset = tf.data.array(yArray); // Combining the Dataset with zip function const xyDataset = tf.data .zip({ xs: xDataset, ys: yDataset }) .batch(4) .shuffle(4); const xy1Dataset = tf.data .zip({ xs: x1Dataset, ys: y1Dataset }) .batch(4) .shuffle(4); // Creating model const model = tf.sequential(); model.add( tf.layers.dense({ units: 1, inputShape: [4], }) ); // Compiling model model.compile({ loss: "meanSquaredError", optimizer: "sgd", metrics: ["acc"] }); // Using tf.callbacks.earlyStopping in fitDataset. const history = await model.fitDataset(xyDataset, { epochs: 10, validationData: xy1Dataset, callbacks: tf.callbacks.earlyStopping({ monitor: "val_acc" }), }); // Printing value console.log("The value of val_acc is :", history.history.val_acc);
Salida: el valor que obtiene es diferente porque con el valor de entrenamiento cambia su valor val_acc.
The value of val_acc is :0.4375,0.375
Ejemplo 2: En este ejemplo, veremos cómo usar tf.callbacks.earlyStopping() con fit:
Javascript
import * as tf from "@tensorflow/tfjs"; // Creating tensor for training const x = tf.tensor([5, 6, 7, 8, 9, 2], [3, 2]); const x1 = tf.tensor([8, 7, 6, 5, 2, 9], [3, 2]); const y = tf.tensor([1, 3, 3, 4, 4, 6, 6, 8, 9], [3, 3]); const y1 = tf.tensor([2, 2, 2, 1, 5, 5, 2, 3, 8], [3, 3]); // Creating model const model = tf.sequential(); model.add( tf.layers.dense({ units: 3, inputShape: [2], }) ); // Compiling model model.compile({ loss: "meanSquaredError", optimizer: "sgd", metrics: ["acc"] }); // Using tf.callbacks.earlyStopping in fit. const history = await model.fit(x, y, { epochs: 10, validationData: [x1, y1], callbacks: tf.callbacks.earlyStopping({ monitor: "val_acc" }), }); // Printing value console.log("the value of val_acc is :", history.history.val_acc);
Salida: el valor de su código de ejecución será diferente porque con los cambios de valor de datos de entrenamiento:
the value of val_acc is : 0.3333333432674408,0.3333333432674408
Referencia: https://js.tensorflow.org/api/latest/#callbacks.earlyStopping
Publicación traducida automáticamente
Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA