Tensorflow.js tf.Sequential class .fit() Method

15 Oct, 2021
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.jstf.Sequential class .fit( ) method is used to train the model for the fixed number of epochs( iterations on a dataset ).
Syntax:
model.fit( x, y, args?);
Parameters:  This method accept following parameters:
x: It is tf.Tensor that contains all the input data.
y: It is tf.Tensor that contains all the output data.
args: It is object type, it’s variables are follows:batchSize: It define the number of samples that will propagate through training.epochs: It define iteration over the training data arrays.verbose: It help in showing the progress for each epoch.If the value is 0 – It means no printed message during fit() call. If the value is 1 – It means in Node-js , it prints the progress bar. In the browser it shows no action. Value 1 is the default value . 2 – Value 2 is not implement yet.callbacks: It define list of callbacks to be call during training. Variable can have one or more of these callbacks onTrainBegin( ), onTrainEnd( ), onEpochBegin( ), onEpochEnd( ), onBatchBegin( ), onBatchEnd( ), onYield( ).validationSplit: It makes easy for the user to split the training dataset into train and validation.For example : if it value is validation-Split = 0.5 ,it means use last 50% of data before shuffling for validation.validationData: It is used to give an estimate of final model when selecting between final models.shuffle: This value define shuffle of the data before each epoch. it has not effect when stepsPerEpoch is not null.classWeight: It is used for weighting the loss function. It can be useful to tell the model to pay more attention to samples from an under-represented class.sampleWeight: It is array of weights to apply to model’s loss for each sample.initialEpoch: It is value define epoch at which to start training. It is useful for resuming a previous training run.stepsPerEpoch: It define number of batches of samples before declaring one epoch finished and starting the next epoch. It is equal to 1 if not determined.validationSteps: It is relevant if stepsPerEpoch is specified. Total number of steps to validate before stopping.yieldEvery: It define configuration of the frequency of yielding the main thread to other tasks. It can be auto, It means the yielding happens at a certain frame rate. batch, If the value is this, It yield every batch. epoch, If the value is this, It yield every epoch. any number, If the value is any number, it yield every number milliseconds.never, If the value is this, it never yield.
batchSize: It define the number of samples that will propagate through training.
epochs: It define iteration over the training data arrays.
verbose: It help in showing the progress for each epoch.If the value is 0 – It means no printed message during fit() call. If the value is 1 – It means in Node-js , it prints the progress bar. In the browser it shows no action. Value 1 is the default value . 2 – Value 2 is not implement yet.
callbacks: It define list of callbacks to be call during training. Variable can have one or more of these callbacks onTrainBegin( ), onTrainEnd( ), onEpochBegin( ), onEpochEnd( ), onBatchBegin( ), onBatchEnd( ), onYield( ).
validationSplit: It makes easy for the user to split the training dataset into train and validation.For example : if it value is validation-Split = 0.5 ,it means use last 50% of data before shuffling for validation.
validationData: It is used to give an estimate of final model when selecting between final models.
shuffle: This value define shuffle of the data before each epoch. it has not effect when stepsPerEpoch is not null.
classWeight: It is used for weighting the loss function. It can be useful to tell the model to pay more attention to samples from an under-represented class.
sampleWeight: It is array of weights to apply to model’s loss for each sample.
initialEpoch: It is value define epoch at which to start training. It is useful for resuming a previous training run.
stepsPerEpoch: It define number of batches of samples before declaring one epoch finished and starting the next epoch. It is equal to 1 if not determined.
validationSteps: It is relevant if stepsPerEpoch is specified. Total number of steps to validate before stopping.
yieldEvery: It define configuration of the frequency of yielding the main thread to other tasks. It can be auto, It means the yielding happens at a certain frame rate. batch, If the value is this, It yield every batch. epoch, If the value is this, It yield every epoch. any number, If the value is any number, it yield every number milliseconds.never, If the value is this, it never yield.
Returns: Promise< History >
Example 1: In this example we will train our model by default configuration.
Javascript
import * as tf from "@tensorflow/tfjs" // Creating modelconst model = tf.sequential( ) ; // Adding layer to modelconst config = {units: 1, inputShape: [1]}const x = tf.layers.dense(config);model.add(x); // Compiling the modelconst config2 = {optimizer: 'sgd', loss: 'meanSquaredError'}model.compile(config2); // Tensor for trainingconst xs = tf.tensor2d([1, 1.2,1.65, 1.29, 1.4, 1.7], [6, 1]);const ys = tf.tensor2d([1, 0.07,0.17, 0.29, 0.43, 1.02], [6, 1]); // Training the modelconst Tm = await model.fit(xs, ys); // Printing the loss after trainingconsole.log("Loss  " + " : " + Tm.history.loss[0]);
Output:
Loss after Epoch  : 2.8400533199310303
Example 2: In this example will train our model by making some configuration.
Javascript
import * as tf from "@tensorflow/tfjs" // Creating modelconst Model = tf.sequential( ) ; // Adding layer to modelconst config = {units: 4, inputShape: [2],                activation : "sigmoid"}const x = tf.layers.dense(config);Model.add(x); const config2 = {units: 3,        activation : "sigmoid"}const y = tf.layers.dense(config2);Model.add(y);  // Compiling the modelconst sgdOpt = tf.train.sgd(0.6)const config3 = {optimizer: 'sgd', loss: 'meanSquaredError'}Model.compile(config3); // Test Tensorconst xs = tf.tensor2d([ [0.3, 0.24],                        [0.12, 0.73],                        [0.9, 0.54]                        ]); const ys = tf.tensor2d([ [0.43, 0.5, 0.92],                        [0.1, 0.39, 0.12],                        [0.76, 0.4, 0.92]                        ]); // Training the modelfor( let i = 0; i < 5; i++){const config = { shuffle : true, epoch : 10 }const Tm = await Model.fit(xs, ys, config); // Printing the loss after trainingconsole.log("Loss " + " : " + Tm.history.loss[0]); }
Output: 
Loss   : 0.1362573206424713
Loss   : 0.13617873191833496
Loss   : 0.13610021770000458
Loss   : 0.13602176308631897
Loss   : 0.13594339787960052
Reference: https://js.tensorflow.org/api/3.8.0/#tf.Sequential.fit
rs1686740
surinderdawra388
simmytarika5
Picked
Tensorflow.js
JavaScript
Web Technologies
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.