Friday, September 5, 2025
HomeLanguagesJavascriptTensorflow.js tf.callbacks.earlyStopping() Function

Tensorflow.js tf.callbacks.earlyStopping() Function

Tensorflow.js is an open-source library developed by Google for running machine learning models and deep learning neural networks in the browser or node environment. 

Tensorflow.js tf.callbacks.earlyStopping() is a callback function used for stopping training when training data stop improving. 

Syntax:

tf.callbacks.earlyStopping(args);

Parameters: This method accepts the following parameters.

  • args: It is an object with the following fields:
    • monitor: It should be a string. It is the value that is to be monitored.
    • minDelta: It should be a number. It is the minimum value below which is not considered an improvement in training.
    • patience: It should be a number. It is the number of times it should not stop when it encounters a value that is below than minDelta.
    • verbose: It should be a number. It is the value of verbosity.
    • mode: It should be one of these three:
      • “auto”: In auto mode, the direction is inferred automatically from the name of the monitored quantity.
      • “min”: In min mode, training will stop when the value of data that is monitored stop decreasing.
      • “max”: In max mode, training will stop when the value of data that is monitored stop increasing.
    • baseline: It should be a number. It is the number that tells when training doesn’t keep up with this value training will stop. It is the end line for the quantity which is monitored.
    • restoreBestWeights: It should be a boolean value. It tells whether to restore the best value from the monitored quantity in each epoch or not.

Return Value: It returns an object (EarlyStopping).

Below are some examples of this function.

Example 1: In this example we will see how to use tf.callbacks.earlyStopping() function in 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);


Output: The value you get is different because with training value its val_acc value changes.

The value of val_acc is :0.4375,0.375

Example 2: In this example, we will see how to use tf.callbacks.earlyStopping() with 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);


Output: The value of your executing code will be different because with training data value changes:

the value of val_acc is : 0.3333333432674408,0.3333333432674408

Reference: https://js.tensorflow.org/api/latest/#callbacks.earlyStopping

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!
RELATED ARTICLES

Most Popular

Dominic
32264 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6634 POSTS0 COMMENTS
Nicole Veronica
11801 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11863 POSTS0 COMMENTS
Shaida Kate Naidoo
6750 POSTS0 COMMENTS
Ted Musemwa
7025 POSTS0 COMMENTS
Thapelo Manthata
6701 POSTS0 COMMENTS
Umr Jansen
6718 POSTS0 COMMENTS